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插入排序算法的实现代码
Nov 21 Python
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Python中的ConfigParser模块使用详解
May 04 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Python操作json的方法实例分析
Dec 06 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
python3实现单目标粒子群算法
Nov 14 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
Python collections.deque双边队列原理详解
Oct 05 Python
python 如何设置守护进程
Oct 29 Python
Python实现简单的2048小游戏
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中for循环语句的几种变型
2006/11/26 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
JavaScript 原型链学习总结
2010/10/29 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python使用pymysql小技巧
2017/06/04 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
结婚周年感言
2014/02/24 职场文书
合作经营协议书范本
2014/04/17 职场文书
参赛口号
2014/06/16 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
2014年评职称工作总结
2014/11/20 职场文书
湘江北去观后感
2015/06/15 职场文书
在校生证明
2015/06/17 职场文书
养成教育工作总结
2015/08/13 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书