浅谈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 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
python中关于日期时间处理的问答集锦
Mar 08 Python
Python中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python的Flask框架中实现分页功能的教程
Apr 20 Python
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Python类继承和多态原理解析
Feb 05 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Django框架中表单的用法
Jun 10 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中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
学习PHP的数组总结【经验】
2016/05/05 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
python查询mysql,返回json的实例
2018/03/26 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python实现可变变量名方法详解
2019/07/01 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
python实现简单颜色识别程序
2020/02/19 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
详解Java实践之适配器模式
2021/06/18 Java/Android