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之玩转字符串(3)
Sep 14 Python
详解Python的单元测试
Apr 28 Python
Python判断Abundant Number的方法
Jun 15 Python
python实现画一颗树和一片森林
Jun 25 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
pandas删除指定行详解
Apr 04 Python
docker django无法访问redis容器的解决方法
Aug 21 Python
python定时任务 sched模块用法实例
Nov 04 Python
python开发前景如何
Jun 11 Python
python中setuptools的作用是什么
Jun 19 Python
Python语言编写智力问答小游戏功能
Oct 13 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
python获取对象信息的实例详解
Jul 07 #Python
You might like
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
使用Python的内建模块collections的教程
2015/04/28 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
Python3内置模块random随机方法小结
2019/07/13 Python
python set集合使用方法解析
2019/11/05 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
python实现三壶谜题的示例详解
2020/11/02 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
晨会主持词
2014/03/17 职场文书
座谈会主持词
2014/03/20 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
党在我心中演讲稿
2014/09/02 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
python游戏开发Pygame框架
2022/04/22 Python