浅谈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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
python实现定制交互式命令行的方法
Jul 03 Python
Python反射用法实例简析
Dec 22 Python
python实现大转盘抽奖效果
Jan 22 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
Django使用Jinja2模板引擎的示例代码
Aug 09 Python
Python操作注册表详细步骤介绍
Feb 05 Python
浅谈keras.callbacks设置模型保存策略
Jun 18 Python
python 19个值得学习的编程技巧
Aug 15 Python
Python eval函数介绍及用法
Nov 09 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 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
几种显示数据的方法的比较
2006/10/09 PHP
php xml文件操作代码(一)
2009/03/20 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python实现遍历数据库并获取key的值
2015/05/17 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
C++面试题:关于链表和指针
2013/06/05 面试题
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
儿科护士自我鉴定
2013/10/14 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python