无边界探索:Selenium元素定位方法全攻略!

这篇具有很好参考价值的文章主要介绍了无边界探索:Selenium元素定位方法全攻略!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

一、背景

作为当下最流行的web UI自动化测试工具,selenium是很多测试同学入门接触自动化测试时学习的第一个工具。想要自动化操作页面上的内容,元素定位是首先必须要学习的核心知识。

因此本文主要介绍selenium的几种最常用的元素定位方法,掌握了这些方法,希望能帮助大家快速轻松定位到页面上的各类元素。

二、浏览器定位元素

首先我们以最常见的百度首页为例,假设我们的操作是想要往搜索框内输入关键字,看看如何定位到搜索框。

先打开百度首页,然后F12调出浏览器调试台,然后如图中所示定位到搜索框:

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

注意观察HTML元素的各个字段,接下来主要就依靠这些字段来定位到元素:

1. tagName:input
2. type:text
3. class:s_ipt
4. name: wd
5. id: kw
6. maxlength: 100
7. autocomplete: off

页面上的超链接元素定位:

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

三、Selenium元素定位代码

3.1 通过id定位

ele = driver.find_element_by_id("kw")

3.2 通过class定位

ele = driver.find_element_by_class_name("s_ipt")

3.3 通过name定位

ele = driver.find_element_by_name("name")

3.4 通过tagname定位

ele = driver.find_element_by_tag_name("input")

一个页面中所有的文本框的tagname都是input,太不唯一,所以一般不会用

3.5 通过link_text定位

ele = driver.find_element_by_link_text("新闻")
只能是超链接标签的文本才能查,精准匹配

3.6 通过partial_link_text定位

ele = driver.find_element_by_partial_link_text("新")
只能是超链接标签的文本才能查,模糊匹配

3.7 通过css选择器定位

1、单一属性定位:

1. 通过id属性定位(#号表示通过id属性定位):
driver.find_element_by_css_selector('#kw')

2. 通过class属性定位(.表示通过class属性定位):
driver.find_element_by_css_selector('.s_ipt')

3. 通过其他属性定位([]表示通过其他属性定位):
driver.find_element_by_css_selector("[name='wd']")
driver.find_element_by_css_selector("[type='text']")

2、组合属性定位:

1. id组合属性定位
driver.find_element_by_css_selector("input#kw")

2. class组合属性定位
driver.find_element_by_css_selector("input.s_ipt")

3. 其他属性组合定位
driver.find_element_by_css_selector("input[name='wd']")

4. 两个其他属性组合定位
driver.find_element_by_css_selector("[name='wd'][autocomplete='off']")

3、通过层级定位:

#id是form的form下面的span下面的input
driver.find_element_by_css_selector('form#form>span>input')

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

4、模糊匹配属性值定位:

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

1. 匹配属性值以xx字符串开头的方法:
driver.find_element_by_css_selector("input[class^='s']")

2. 匹配属性值以xx字符串结尾的方法:
driver.find_element_by_css_selector("input[class$='ipt']")

3.8 通过xpath表达式查找

表达式 描述
/ 绝对路径,从根节点选取。严格按照路径、同级元素的位置来定位,缺点:页面一动,基本崩溃
// 相对路径,根据表达式匹配页面中有还是没有符合表达式的元素,缺点:可能有多个符合的元素
. 选取当前节点
选取当前节点的父节点
@ 选取属性
[ ] 表示进一步的表达式
通配符 描述
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点。

1、利用标签内属性进行定位:

xpath = "//标签名[@属性='属性值']"
查找span标签的下级标签为input的并且属性id为kw的元素:

1. xpath = driver.find_element_by_xpath("//input[@id= 'kw' ]")

属性判断条件:最常见为id,name,class等等,属性的类别没有特殊限制,只要能够唯一标识一个元素即可。当某个属性不足以唯一区别某一个元素时,也可以采取多个条件组合的方式,如下:

1. xpath = "//input[@type='text' and @name='wd']"

2、利用text()方法文本定位

//a[text() = '新闻']
//a[text() = '新闻'][1]  :表示使用找到的第一个,索引从1开始,不是0

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

3、利用contains()方法定位,也叫模糊定位

xpath = "//标签名[contains(@属性, '属性值')]"

1. 例:文本包含“新”
xpath = //a[contains(text(),'新')]

2. class属性包含kd的
xpath = //a[contains(@class,'kd')]

3. 通过下一级查找上一级:
xpath = //input[@id='kw']/..  :表示查找他的上一层
xpath = //input[@id='kw']/.. /.. :表示查找上两层

4. 如果一个元素无法通过自身属性直接定位到,则可以先定位它的父(或父的父)元素,然后再找下一级即可
xpath = //form[@id='form']/span[@class='bg s_ipt_wr new-pmd quickdelete-wrap']/input

四、总结

4.1 推荐的定位方式的优先级

  • 优先级最高:ID
  • 优先级其次:name
  • 优先级再次:CSS selector
  • 优先级再次:Xpath

4.2 css选择器和xpath的各自优劣势

  • css是配合html来工作,它实现的原理是匹配对象的原理,而xpath是配合xml工作的,它实现的原理是遍历的原理,所以两者在设计上,css性能更优秀(ps:css选择器表达式在chrome、firefox解析速度快一些,xpath在ie浏览器解析速度快一些)
  • 针对id或者name能够直接定位到的元素,css选择器表达式比xpath表达式更加简洁
  • css选择器不支持文本搜索,但是xpath支持
  • 当查找的元素比较简单时,使用css,复杂时使用xpath

4.3 通过浏览器快捷获取元素的css/xpath

浏览器也提供了快捷获取xpath的方式,可以方便快捷的获取到xpath,如下图所示:

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

以上就是本次的全部内容,如果对你有帮助!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试

无边界探索:Selenium元素定位方法全攻略!,软件测试,经验分享,自动化测试,selenium,测试工具,pytest,python,jmeter,自动化测试文章来源地址https://www.toymoban.com/news/detail-754181.html

到了这里,关于无边界探索:Selenium元素定位方法全攻略!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium元素定位方法大全

    作为当下最流行的web UI自动化测试工具,selenium是很多测试同学入门接触自动化测试时学习的第一个工具。想要自动化操作页面上的内容,元素定位是首先必须要学习的核心知识。 因此本文主要介绍selenium的几种最常用的元素定位方法,掌握了这些方法,希望能帮助大家快速

    2024年02月02日
    浏览(65)
  • selenium定位元素方法

    1、通过id定位元素 写法1: element = driver.find_element_by_id(\\\"kw\\\") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value=\\\"kw\\\") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推 2、通过class定位元素 写法1: cheeses = driver.find_elements_by_clas

    2023年04月25日
    浏览(49)
  • selenium定位元素的方法

    Selenium可以驱动浏览器完成各种操作,比如模拟点击等。要想操作一个元素,首先应该识别这个元素。人有各种的特征(属性),我们可以通过其特征找到人,如通过身份证号、姓名、家庭住址。同理,一个元素会有各种的特征(属性),我们可以通过这个属性找到这对象。

    2024年02月14日
    浏览(43)
  • Selenium元素定位——八大方法详述

    元素:由标签头 + 标签尾 + 标签头和标签尾包括的文本内容; 元素的信息就是指元素的标签名及元素的属性; 元素的层级结构就是指元素之间相互嵌套的层级结构; 元素定位最终就是通过元素的信息或者元素的层级结构来进行元素定位; webdriver 提供了一系列的对象定位方

    2024年02月06日
    浏览(46)
  • Selenium常用元素定位方法汇总

    目录 一、webdriver定位方法 1、xpath基本定位用法 2、xpath相对路径/绝对路径定位 3、xpath文本、模糊、逻辑定位 1、 id 定位 2、 name定位 3、 class定位 4、 link定位 --精准定位 5、 partial_link定位 --模糊定位 6、 tag_name定位 --标签名定位 找到页面上所有标签名为input的标签,返回一个列

    2024年02月02日
    浏览(44)
  • Selenium元素定位方法:css_selector定位

    认识CSS定位 CSS: 概念:(Cascading Style Sheets)是一种语言,用来描述HTML元素的显示样式。 选择器:一种表达式,可以找到HTML中的标签元素。 css定位 概念:selenium利用选择器定位元素的定位方式。 方法:driver.find_element_by_css_selector(选择器表达式) 1、id选择器 语法: #id属性值 前

    2024年02月13日
    浏览(46)
  • Selenium元素定位方法:link_text定位

    概念:专门用来定位超链接元素(标签)。 练习元素定位使用Link_Text定位方式完成下面操作 打开注册A.html页面,完成以下操作 1).使用link_text定位(访问 新浪 网站)超链接,并点击 2).3秒后关闭浏览器窗口 ①.创建浏览器驱动 ②.打开测试网址 ③.获取要定位超链接文本类容,用拷

    2024年02月06日
    浏览(39)
  • selenium新版元素定位方法、元素操作与基本API

    注意:selenium新版元素定位需要导入方法By,使用By来调用元素定位方法     from selenium.webdriver.common.by import By     标签的 id属性具有唯一性,就像人的身份证,不存在根据一个id属性定位到多个标签的情况。假设有个iframe标签如下,其 id 属性值为\\\"actionFrame\\\"。 我们可以通过

    2024年02月03日
    浏览(65)
  • selenium元素定位---ElementClickInterceptedException(元素点击交互异常)解决方法

    目录 前言: 1、异常原因 2、解决方法: 当使用Selenium进行元素定位和交互时,可能会遇到 ElementClickInterceptedException (元素点击交互异常)的异常。这通常是由于页面上存在其他元素或弹出窗口遮挡了要点击的元素。 在编写ui自动化时,执行报错元素无法点击:ElementClickInt

    2024年02月12日
    浏览(44)
  • Python Selenium 八大元素定位方法(下)

    今天我们来学习UI自动化中,剩余五个元素定位方法:tag_name、link_text、partial_link_text、Xpath、css_selector 以tag_name元素定位为例 HTML是由不同的标签组成的,每个标签都是指的同一类,所以用tag定位效率低下,一般不建议使用。 以link_text元素定位为例 1、使用F12,定位到含有链接

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包