python自动化八大定位元素讲解


Posted in Python onJuly 09, 2021

一、find_element_by_id()

find_element_by_id()
1.从上面定位到的元素属性中,可以看到有个id属性:id=“kw”,这里可以通过它的id属性定位到这个元素。
2.定位到搜索框后,用send_keys()方法,就可以输入文本。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 通过id定位百度输入框,并输入'python'
ss = driver.find_element_by_id('kw')
ss.send_keys('python')

python自动化八大定位元素讲解

二、find_element_by_name()

find_element_by_name()
1.从上面定位到的元素属性中,可以看到有个name属性:name=“wd”,这里可以通过它的name属性单位到这个元素。
说明:这里运行后会报错,说明这个搜索框的name属性不是唯一的,无法通过name属性直接定位到输入框

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
# 通过name定位百度输入框,并输入'python'
ss = driver.find_element_by_name('wd')
ss.send_keys('python')

python自动化八大定位元素讲解

三、find_element_by_class_name()

find_element_by_class_name()
1.从上面定位到的元素属性中,可以看到有个class属性:class=“s_ipt”,这里可以通过它的class属性定位到这个元素。

from selenium import  webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
#通过class定位百度输入框,并输入'python'
driver.find_element_by_class_name('s_ipt').send_keys('python')

python自动化八大定位元素讲解

四、find_element_by_tag_name()

find_element_by_tag_name()
1.从上面定位到的元素属性中,可以看到每个元素都有tag(标签)属性,如搜索框的标签属性,就是最前面的input。
2.很明显,在一个页面中,相同的标签有很多,所以一般不用标签来定位。以下例子,仅供参考和理解,运行肯定报错。

from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
#通过tag(标签)定位百度输入框,并输入'python'
ss = driver.find_element_by_tag_name('input')
ss.send_keys('python')

python自动化八大定位元素讲解

五、find_element_by_link_text()

1.定位百度页面上"hao123"这个按钮

python自动化八大定位元素讲解

查看页面元素:

<a class="mnav" target="_blank" href="http://www.hao123.com" rel="external nofollow" >hao123</a>

2.从元素属性可以分析出,有个href = "http://www.hao123.com

说明它是个超链接,对于这种元素,可以用以下方法:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
#通过tlink(超链接)定位百度输入框,并点击
driver.find_element_by_link_name('hao123').click()

六、find_element_by_partial_link_text()

1.有时候一个超链接它的字符串可能比较长,如果输入全称的话,会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串就可以了

2.如“hao123”,只需输入“ao123”也可以定位到

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过partial_link定位百度输入框,并点击(partial_link是一种模糊匹配的方式)
driver.find_element_by_partial_link_name('hao123').click()

七、find_element_by_xpath()

1.以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决。
2.xpath是一种路径语言,跟上面的定位原理不太一样,首先第一步要先学会查看一个元素的xpath。

  • 对于谷歌浏览器来说,有自己 的xpath解析工具:鼠标移到需要查看的html源码上,右击
  • 选择copycopy
  • xpath,就是源码的xpath路径

python自动化八大定位元素讲解

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过xpath地址定位百度输入框,并点击(xpath地址即为赋值过来的地址)
driver.find_element_by_xpath('//*[@id="s-top-left"]/a[2]').click()

八、find_element_by_css_selector()

1.css是另外一种语法,比xpath更为简洁,但是不太好理解。这里先学会如何用工具查看,后续的教程再深入讲解

对于谷歌浏览器来说,同样有自己 的css解析工具:鼠标移到需要查看的html源码上,右击

选择copy

copy selector,就是源码的css路径

python自动化八大定位元素讲解

from selenium import webdriver
driver = webdriver.Chrome()

driver.get('http://www.baidu.com')
#通过css地址定位百度输入框,并点击
driver.find_element_by_xpath('#s-top-left > a:nth-child(2)').click()

总结:

python自动化八大定位元素讲解

 

到此这篇关于python自动化八大定位元素讲解的文章就介绍到这了,更多相关python自动化八大定位元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实例分享:快速查找出被挂马的文件
Jun 08 Python
用Python脚本来删除指定容量以上的文件的教程
May 04 Python
python文件的md5加密方法
Apr 06 Python
Python中断言Assertion的一些改进方案
Oct 27 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
Django中Middleware中的函数详解
Jul 18 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 Python
python日志模块logbook使用方法
Sep 19 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
详解python tkinter 图片插入问题
Sep 03 Python
python中@property的作用和getter setter的解释
Dec 22 Python
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
python获取对象信息的实例详解
Jul 07 #Python
You might like
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
JavaScript中判断对象类型的几种方法总结
2013/11/11 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
python连接oracle数据库实例
2014/10/17 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
生产经理的自我评价分享
2013/11/07 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript