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中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
基于python实现名片管理系统
Nov 30 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
Form表单及django的form表单的补充
Jul 25 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 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制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
javascript Select标记中options操作方法集合
2008/10/22 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
基于JS代码实现图片在页面中旋转效果
2016/06/16 Javascript
javascript常用的设计模式
2017/02/09 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
MVVM 双向绑定的实现代码
2018/06/21 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Vue的Options用法说明
2020/08/14 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Django中的AutoField字段使用
2020/05/18 Python
python名片管理系统开发
2020/06/18 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
人事专员岗位职责
2013/11/20 职场文书
自我评价200字分享
2013/12/17 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
工作保证书范文
2014/04/29 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
中学教师读书笔记
2015/07/01 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
如何利用python实现列表嵌套字典取值
2022/06/10 Python