selenium webdriver 操作方法和元素查找器

本文详细介绍了Selenium WebDriver的7种基本操作,包括get、send_key、click等,以及8种元素查找器,如id、class_name、xpath等。还涉及了弹框处理、页面切换、下拉框选择、时间控件、上传文件、UI自动化中的验证码解决方案、等待方式、iframe切换及模拟键盘鼠标操作等实战技巧。示例代码包括了不同场景下的实际应用。

7种基本操作 : get,send_key,click,close,quit,clear,text

from selenium import webdriver  #导入webdriver模块
d = webdriver.Firefox()   # 实例化浏览器
d.get("https://www.baidu.com")   #输入网址
d.find_element_by_id("kw").send_keys("图片")  #找到输入框并输入“图片”
d.find_element_by_id("kw").clear()  #清除输入框中的内容
text01 = d.find_element_by_id("cp").click()   #点击id为“cp”的地方
text02 = d.find_element_by_id("cp").text   #获取id为“cp”处的文本
d.close()  #关闭当前页面
d.quit()  #关闭打开的所有页面

8种元素查找器 : id,class_name,tag_name,link_text,partial_link_text,name,css_selector,xpath
from selenium import webdriver

d.find_element_by_id("id值").send_keys("admin")   #通过id,找到输入框并传值
d.find_element_by_class_name("类名")    #通过类名查找元素
d.find_element_by_xpath("元素路径")  #用元素路径查询
d.find_element_by_partial_link_text("文本")    #用文本模糊查询
d.find_element_by_link_text("完整文本")  #用完整的文本准确查询
d.find_element_by_name("name值")     #用name值查询,一般是输入框的之后存在
d.find_element_by_tag_name("标签名")   #用标签名查找,默认查找第一个
d.find_elements_by_tag_name("标签名")[下标]  #标签名查找,取下标定位
d.find_element_by_css_selector("css路径")  #可用css选择器,一般选择css路径

万能查找器 : find_element(“id”,“id名”)
常用 : id,name,xpath,partial_link_text,link_text,class_name

driver.find_element_by_id("username").send_keys("admin")

弹框的处理

  driver.switch_to.alert.accept( )	确认操作
  driver.switch_to.alert.dismiss( )	  取消操作
  print(driver.switch_to.alert.text)	  获取内容

页面的切换
方法一 :
获取全部句柄

wli = driver.window_handles

切换到最后一页

driver.switch_to.window(wli[-1])

方法二 :
获取当前句柄

cwli = driver.current_window_handle
for i in wli:
    if i != cwli:
        driver.switch_to.window(i)
  1. 下拉框的选择
首先导包 : 
from selenium.webdriver.support.select import Select
a. 多次点击
b. Select(ele).select_by_index(2)			通过下标选择
c. Select(ele).select_by_value("  ")			通过value值选择
d. Select(ele).select_by_visible_text("  ")	通过显示的值选择
  1. 时间控件的处理
driver.execute_script("document.getElementById('id').removeAttribute('readonly');")
  1. 上传文件
    找到元素,然后对元素进行send_keys(“文件的路径和文件名”)
    注意 : 路径双斜杠表示防止转义

  2. ui自动化解决验证码 :
    a. 万能验证码
    b. 屏蔽验证码
    c. OCR图像识别

  3. 等待方式
    a. 强制等待:

time.sleep(3)

b. 隐式等待:

driver.implicitly_wait(3)   

其中数字表示等待最长的时间,如无需等待这么长,会只消耗刷新时间
c. 显式等待:需要导包:

from  selenium.webdriver.support.ui import WebDriverWait	

使用显示等待:

WebDriverWait(dr,5,0.5).until(lambda driver:dr.find_element_by_id("batchfile") )

iframe的切换
方法一:

ele = driver.find_element_by_tag_name("iframe")  
driver.switch_to.frame(ele)

方法二:

ele = driver.find_element_by_xpath("//div/iframe")  #默认找到第一个iframe
driver.switch_to.frame(ele)
time.sleep(2)
driver.find_element_by_name("email").send_keys("aaa")
driver.find_element_by_name("password").send_keys("nnn")

从iframe切换出来:

driver.switch_to.default_content( )

针对tag = input的框取值

driver.find_element_by_id("customerphone").get_attribute("value")

模拟键盘的操作
导包 :

 from  selenium.webdriver.common.keys import Keys

使用的话,先找到元素,对元素进行send_keys(Keys.键盘输入(全部大写))

dr.find_element_by_id("kw").send_keys(Keys.ENTER)

要使用组合键:Keys.CONTROL,“A”

模拟鼠标操作

from  selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).click(E).perform( )  

这里第一个括号里放入你的实例化驱动,第二个括号表示使用鼠标的位置元素查找信息,
右键单击:

context_click(s)

左键双击:

double_click(s)

注意 : 鼠标操作在最后都得加perform( )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值