浅谈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中内置的NotImplemented类型的用法
Mar 31 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
Python运算符重载用法实例
May 28 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
详解Python自建logging模块
Jan 29 Python
深入浅析python 中的匿名函数
May 21 Python
python利用百度AI实现文字识别功能
Nov 27 Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 Python
python实现手机销售管理系统
Mar 19 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
js event事件的传递与冒泡处理
2009/12/06 Javascript
Jquery 扩展方法
2010/05/06 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
Python 中的with关键字使用详解
2016/09/11 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
《望洞庭》教学反思
2014/02/16 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
2014年底工作总结
2014/12/15 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers