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的Django框架安装全攻略
Jul 15 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
pandas通过索引进行排序的示例
Nov 16 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
python字符串替换re.sub()实例解析
Feb 09 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
python怎么判断素数
Jul 01 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
Django视图类型总结
Feb 17 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实现网上点歌(二)
2006/10/09 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python类属性的延迟计算
2016/10/22 Python
Python微信库:itchat的用法详解
2017/08/14 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
python3代码中实现加法重载的实例
2020/12/03 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
巴基斯坦购物网站:Goto
2019/03/11 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
医院护士的求职信范文
2013/12/26 职场文书
自荐书范文范例
2014/02/13 职场文书
事假请假条范文
2014/04/11 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
委托书格式要求
2015/01/28 职场文书
清洁工个人工作总结
2015/03/05 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python