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之编写类之三子类
Oct 11 Python
Python os模块介绍
Nov 30 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
Python实现的个人所得税计算器示例
Jun 01 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
wxpython绘制圆角窗体
Nov 18 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 03 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 Python
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
python获取对象信息的实例详解
Jul 07 #Python
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
详细介绍PHP应用提速面面观
2006/10/09 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
理解javascript封装
2016/02/23 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python更改已存在excel文件的方法
2018/05/03 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
逻辑链路控制协议
2016/10/01 面试题
护理个人求职信范文
2014/01/08 职场文书
化工操作工岗位职责
2014/04/29 职场文书
相亲活动方案
2014/08/26 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
三国演义读书笔记
2015/06/25 职场文书
开学第一周总结
2015/07/16 职场文书
大学运动会通讯稿
2015/07/18 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
MySQL查询学习之基础查询操作
2021/05/08 MySQL