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 相关文章推荐
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
Djang中静态文件配置方法
Jul 30 Python
Python监控主机是否存活并以邮件报警
Sep 22 Python
python中的lambda表达式用法详解
Jun 22 Python
使用Python对Csv文件操作实例代码
May 12 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Python startswith()和endswith() 方法原理解析
Apr 28 Python
python中pandas对多列进行分组统计的实现
Jun 18 Python
Python实现简单得递归下降Parser
May 02 Python
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
python获取对象信息的实例详解
Jul 07 #Python
You might like
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
学习python (2)
2006/10/31 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
Python 如何展开嵌套的序列
2020/08/01 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
python 制作一个gui界面的翻译工具
2021/05/14 Python
MySQL数据管理操作示例讲解
2022/12/24 MySQL