浅谈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 相关文章推荐
django站点管理详解
Dec 12 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python根据多个文件名批量查找文件
Aug 13 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
python3代码输出嵌套式对象实例详解
Dec 03 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
js截取小数点后几位的写法
2013/11/14 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
移动端Ionic App 资讯上下循环滚动的实现代码(跑马灯效果)
2017/08/29 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Django集成MongoDB实现过程解析
2020/12/01 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
如何使用PHP session
2015/04/21 面试题
原料仓管员岗位职责
2014/04/12 职场文书
2015年试用期工作总结
2014/12/12 职场文书
法律意见书范本
2015/06/04 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android