浅谈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操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
Python标准库之随机数 (math包、random包)介绍
Nov 25 Python
python编写的最短路径算法
Mar 25 Python
python验证码识别教程之滑动验证码
Jun 04 Python
Python3爬楼梯算法示例
Mar 04 Python
python基于Selenium的web自动化框架
Jul 14 Python
安装docker-compose的两种最简方法
Jul 30 Python
关于Python-faker的函数效果一览
Nov 28 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
Keras自定义实现带masking的meanpooling层方式
Jun 16 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跨时区(UTC时间)应用解决方案
2013/01/11 PHP
preg_match_all使用心得分享
2014/01/31 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python列表计数及插入实例
2014/12/17 Python
python与字符编码问题
2019/05/24 Python
python操作kafka实践的示例代码
2019/06/19 Python
用django设置session过期时间的方法解析
2019/08/05 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
公司出纳岗位职责
2013/12/07 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
厉行节约工作总结
2015/08/12 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python