selenium工具的简单使用

自动化

自动化:将人工测试转换成自动化脚本/工具去运行
优势:节省时间(20% - 30%),提高工作效率

自动化框架

  • UI自动化
    Python + selenium + unittest + Jenkins
  • 接口自动化:
    • 使用Python写代码进行的
      Python + requests+ unittest + Jenkins
    • 使用接口工具进行的
      jmeter + Jenkins
  • APP自动化
    Python + appium + unittest + Jenkins

初始化

将谷歌驱动、火狐驱动等放到谷歌或火狐的路径下

元素定位

  • 在Python 语言中对应的定位方法如下:
    find_element_by_id()
    find_element_by_name()
    find_element_by_class_name()
    ind_element_by_tag_name()
    find_element_by_link_text()
    find_element_by_partial_link_text()
    find_element_by_xpath()
    find_element_by_css_selector()

  • 通过标签tag定位

    1. 由于input输入框的标签在页面显示很多个,就不能使用find_element…进行定位:要用find_elements…
      ssk_t = dr.find_elements_by_tag_name("input")
      print(len(ssk_t))
      
    2. 显示有多个标签,通过for循环逐个遍历取出每个input标签
      for h in ssk_t:    		
      	# 判断每个input标签的属性值,是否等于输入框特有属性值
      	if h.get_attribute("name") == "q":
      		h.send_keys("通过tag找到")
      
  • 通过xpath相对路径定位
    由于定位的标签所有属性都存在不唯一的情况下,可通过层级(上级或更上级)xpath相对定位,
    ssk_id = dr.find_element_by_xpath('//*[@id="input"]')

    • 层级之间用 /隔开
    • *表示所有标签的统称
    • //表相对路径的开头
    • [@属性=值]—单一属性,值
    • [@属性=值and@属性=值]—多属性值
  • 通过CSS进行定位
    css层级关系用 > 隔开
    css同级关系用 + 隔开
    dr.find_element_by_css_selector('div#suggest-align > input').send_keys("通过css层级")

元素操作

  • clear() — 清除文本,如果是一个文件输入框

  • send_keys(value) ---- 在元素上模拟按键输入

  • click() ---- 单击元素

  • text 返回元素的文本

  • get_attribute("name"): 获得属性值

  • is_displayed(): 判断元素是否显示

  • submit() : 用于提交表单

时间等待

隐性等待:等待所有事务完成–>Webdriver提供了implicitly_wait()方法来实现等待,默认的等待时间为0
显性等待:等待某一个事务
强制等待:必须要等够时间才往下执行

鼠标操作

在webdriver中,关于鼠标操作的方法,由ActionChains类提供。ActionChains类提供的常见的方法有:
move_to_element()鼠标悬停
perform() 执行所有ActionChains中存储的行为

警告框处理

在WebDriver 中处理JavaScript 所生成的网页告警信息可以使用switch_to.alert方法具体方法如下。该方法,包含三个属性:
text 返回告警信息中的文字信息。
accept 点击确认按钮。
dismiss点击取消按钮。

多表单切换

通过switch_to.frame()方法将当前定位的主题切换的内嵌的frame里面去
dr.switch_to.frame(“表单1”)
切换到默认表单
dr.switch_to.default_content()

窗口切换

WebDriver 提供了switch_to_window()方法可以实现在不同的窗口之间切换。
窗口切换的几个方法:
current_window_handle:获得当前窗口句柄。
window_handles:返回的所有窗口的句柄到当前会话。
switch_to.window():用于切换到相应的窗口

关闭窗口

quit()方法
close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值