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根据经纬度计算距离示例
Feb 16 Python
python应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python常用小技巧总结
Jun 01 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
python字符串Intern机制详解
Jul 01 Python
python用for循环求和的方法总结
Jul 08 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
python的Jenkins接口调用方式
May 12 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
快速了解Python开发环境Spyder
Jun 29 Python
python实现简单聊天功能
Python re.sub 反向引用的实现
Jul 07 #Python
Python制作一个随机抽奖小工具的实现
Python 数据科学 Matplotlib图库详解
Python3中最常用的5种线程锁实例总结
Jul 07 #Python
python实现简单的聊天小程序
python获取对象信息的实例详解
Jul 07 #Python
You might like
超级简单的发送邮件程序
2006/10/09 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
javascript Excel操作知识点
2009/04/24 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
javascript的BOM汇总
2015/07/16 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
Python读取指定日期邮件的实例
2019/02/01 Python
Python 定义只读属性的实现方式
2020/03/05 Python
django rest framework使用django-filter用法
2020/07/15 Python
python用700行代码实现http客户端
2021/01/14 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
食堂管理制度范本
2015/08/04 职场文书
学校少先队工作总结
2015/08/12 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android