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基础教程之对象和类的实际运用
Aug 29 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
python,Django实现的淘宝客登录功能示例
Jun 12 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
python爬虫实现获取下一页代码
Mar 13 Python
python中np是做什么的
Jul 21 Python
Django DRF APIView源码运行流程详解
Aug 17 Python
python空元组在all中返回结果详解
Dec 15 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
利用python实现汉诺塔游戏
Mar 01 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 生成饼图 三维饼图
2009/09/28 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
js 程序执行与顺序实现详解
2013/05/13 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
Python collections模块实例讲解
2014/04/07 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
Python切片索引用法示例
2018/05/15 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
大学生如何写自荐信
2014/01/08 职场文书
国家励志奖学金获奖感言
2014/01/09 职场文书
工程管理英文求职信
2014/03/18 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android