骑士注册 登录
Linux 中国◆开源社区 返回首页

longtou的个人空间 https://linux.cn/space/32657 [收藏] [复制] [分享] [RSS]

日志

基于selenium+unittest的自动化测试-定位元素

已有 108 次阅读2019-08-23 17:08 |个人分类:测试

元素定位分类

WebDriver提供了八种元素定位方法,分别为:id、name、class name、tag name、link text、partial link text、xpath、css selector,每种类型都有对应的函数实现。

方法实现范围
idfind_element_by_id()
namefind_element_by_name()
class namefind_element_by_class_name()
tag namefind_element_by_tag_name()
link textfind_element_by_link_text()文本链接
partial link tesxtfind_element_by_partial_link_text()文本链接
xpathfind_element_by_xpath()
css selectorfind_element_by_css_selector()

我们主要用到的定位方法为xpath和css selector

xpath

  • 绝对路径:
    find_element_by_xpath('/html/body/div[2]/div/div[3]/button[2]')
  • 相对路径:
    driver.find_element_by_xpath('//ul/li[3]')
  • 利用元素属性:
    driver.find_element_by_xpath("(//input[@type='text'])[13]")
    【input表示元素的标签名,[@type='text']表示这个元素的type属性的值等于text】
  • 层级与属性结合:
    find_element_by_xpath("//span[@class='bg_s_ipt']/input")
  • 使用逻辑运算符:
    find_element_by_xpath("//span[@class='bg_s_ipt' and @type='button']/input")
  • 通过元素文本定位:
    find_element_by_xpath("//span[contains(.,'下一步')]")

css selector

driver.find_element_by_css_selector( ".el-button:nth-child(3) > span > span")
一般我们会通过工具来生成css selector语法

元素定位工具

selenium IDE:作为浏览器插件,支持firefox、chrome

子元素定位

如果一个元素下有多个相同的子元素,比如元素a下有多个div元素,那么可以通过a.find_elements_by_xpath('div')获取到所有子元素

返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。