浅谈Selenium+Webdriver 常用的元素定位方式


Posted in Python onJanuary 13, 2021

假设页面源代码如下:

<input type="text"name="wd" id="kw1" class="input_wd" maxlength="100"style="width:474px;"autocomplete="off">

通过id定位元素:find_element_by_id(“id_vaule”):

browser=webdriver.Firefox()
browser.find_element_by_id("kw1")

通过name定位元素:find_element_by_name(“name_vaule”)

browser.find_element_by_name("wd")

通过tag_name定位元素:find_element_by_tag_name(“tag_name_vaule”)

browser.find_element_by_tag_name("input")#tag_name指标签名称

通过class_name定位元素:find_element_by_class_name(“class_name”)

browser.find_element_by_class_name("input_wd")

通过css定位元素:find_element_by_css_selector();用css定位是比较灵活的

browser.find_element_by_css_selector("input[id=\"kw1\"]")
browser.find_element_by_css_selector("input.input_wd)
browser.find_element_by_css_selector("#kw1)

通过xpath定位元素:find_element_by_xpath(“xpath”)
XPath(XML Path Language)是一种在XML文档中定位元素的语言,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。
假设页面源代码如下:

浅谈Selenium+Webdriver 常用的元素定位方式 

注:元素的xpath绝对路径可通过firebug直接查询,绝对路径以单/开头,从文档的根节点开始解析(如:/html/body/table/tbody/tr[2]/td[2]/div/div[1]/div/div[2]/div[4]/div[3]/div[1]/a[1]),相对路径则以//开头,从文档的任意节点开始解析。

浅谈Selenium+Webdriver 常用的元素定位方式

相对路径的引用写法:

表达式 描述
//input 选取所有input元素
//form[1]/input 选取第一个form元素内的所有直接子input元素
//form[1]//input 选取第一个form元素内的所有子input元素,不论嵌套了多少层
//form[1]/input[last()] 选取第一个form元素内的所有直接子input元素中的最后一个
//form[@id='loginForm'] 选取id属性值为loginForm的form元素
//input[@name='continue'][@type='button'] 选取name属性值为continue且type属性值为button的input元素
//form[@id^='loginForm']/input[4] 选取id以loginForm开头的form元素下第4个input元素
browser.find_element_by_xpath(“//td[contains(text(),'下单编号')]”) 选取text文本为下单编号的td

通过link定位:find_element_by_link_text(“text_vaule”)或者find_element_by_partial_link_text()
适用于页面中出现的文字链接

browser.find_element_by_link_text("登录").click() #点击登录链接
browser.find_element_by_partial_link_text("登").click()#只用了链接中的部分文字

参考资料:

到此这篇关于浅谈Selenium+Webdriver 常用的元素定位方式的文章就介绍到这了,更多相关Selenium Webdriver元素定位内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python基础教程之python消息摘要算法使用示例
Feb 10 Python
python字符串排序方法
Aug 29 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python实现定时发送qq消息
Jan 18 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
python中数据库like模糊查询方式
Mar 02 Python
利用Python实现Picgo图床工具
Nov 23 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 #Python
基于python+selenium自动健康打卡的实现代码
Jan 13 #Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 #Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 #Python
Python 生成短8位唯一id实战教程
Jan 13 #Python
python uuid生成唯一id或str的最简单案例
Jan 13 #Python
全网最全python库selenium自动化使用详细教程
Jan 12 #Python
You might like
深入分析PHP引用(&amp;)
2014/09/04 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
python制作websocket服务器实例分享
2016/11/20 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python是否适合网页编程详解
2019/10/04 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
网站开发实习生的自我评价
2013/12/11 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
学徒工职责
2014/03/06 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
被告代理词范文
2015/05/25 职场文书
python实现自定义日志的具体方法
2021/05/28 Python