Python selenium模块实现定位过程解析
作者:小理想 发布时间:2021-01-10 10:50:27
selenuim模块定位方法
1,我们想要操作html页面上的元素,首先必须要定位到这个元素上。每个元素都有他各自的属性,比如id,name,class等,我们就通过这些属性来定位元素。
2,我们先打开一个网页,按F12来获取这个网页的源代码,方便我们定位元素。
from selenium import webdriver
driver=webdriver.Chrome() #启动谷歌浏览器
driver.get("http://www.baidu.com") #打开百度网页
3,按F12我们获取到元素,鼠标点击图片红框中的标,然后把鼠标放到你想要获取的元素位置,然后右边代码会自动定位。
定位方法详解
1.用id定位
我们可以看到右边代码元素id为kw。
from selenium import webdriver
driver=webdriver.Chrome()
driver.get("http://www.baidu.com")
s=driver.find_element_by_id('kw') #定位到id等于kw的元素(百度搜索框)
s.send_keys('您好') #在搜索框内输入你好
2.用name来定位
#代码同上
driver.find_element_by_name('wd') #定位name为wd的元素
3.用classname来定位
#代码同上
driver.find_element_by_class_name('s_ipt') #通过类名定位,一般类名有重复的,不常使用
4.用标签来定位
#代码同上
driver.find_element_by_tag_name('tag') #标签定位,不常使用
5.定位a标签。
#代码同上
driver.find_element_by_link_text('text') #定位a标签的内容完全匹配
driver.find_element_by_partical_link_text('text') #定位a标签内容模糊匹配
6.通过路径来定位,常用相对路径。
driver.find_element_by_xpath(//*[@id="kw"]) #相对路径定位注意:
html中,大多数的元素都具备id和name的属性,并且id是唯一的,因此用id和name来定位元素是比较常见的方式。 不过有的元素并不具备id和name属性,我们则可以用class name来定位元素。当然我还可以用tag name来定位,但是标签名字太容易重复,除非想定位一组相同标签的元素,否则一般不推荐使用
来源:https://www.cnblogs.com/xiaolixiang/p/13256411.html


猜你喜欢
- 这是个郁闷的问题。主级获得ID列表 select ID from FS_SD_Address where PID=0
- 本文实例讲述了js传值后台中文出现乱码的解决方法。分享给大家供大家参考,具体如下:在“test.jsp”页面中,需要通过js将值传递到后台,
- 前言最近在学习点云处理的时候用到了Modelnet40数据集,该数据集总共有40个类别,每个样本的点云数据存放在一个TXT文件中,每行的前3
- 目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造
- 方法一 delete from test; alter table `test` auto_increment=1 (好处,可以设置AUTO
- 用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提
- mpvue使用# 全局安装 vue-cli$ npm install --global vue-cli# 创建一个基于 mpvue-quic
- 生成随机密码这件事情用python来干确实相当的方便,优美的string方法加上choice简直是绝配make_password.py###
- 使用thinkphp官方的WeChat包,使用不同模式可以成功,但是安全模式就是不行,现将分析解决结果做下记录。分析问题: &nb
- 本文实例讲述了Python网络编程使用select实现socket全双工异步通信功能。分享给大家供大家参考,具体如下:在前面一篇《Pytho
- 前言前面我们讲过了error类型来处理一般的错误,本文会描述使用panic函数和recover函数来处理比较极端的错误。简单来说,当程序运行
- 前些日子有网友问:将ASP纪录集输出成n列的的表格形式显示的方法?现在写了一个,方便大家使用。'定义变量 Dim cn,r
- 方法超级简单,把时间格式化一下就好了,直接奉上代码function transDate() { var $time
- 源码: 代码如下: <% '隐藏并修改文件的最后修改时间的aspshell '原理:通过FSO可以修改文件的属性,比
- substr 方法 返回一个从指定位置开始的指定长度的子字符串。 stringvar.substr(start [, length ]) 参
- 本文实例讲述了Python处理XML格式数据的方法。分享给大家供大家参考,具体如下:这里的操作是基于Python3平台。在使用Python处
- 这个系列记录我在一年vue开发中总结的一些经验和技巧。利用Object.freeze()提升性能Object.freeze()是ES5新增的
- 本文实例讲述了Python实现基于socket的udp传输与接收功能。分享给大家供大家参考,具体如下:udp的传输与接收windows网络调
- 前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此
- xlsxwriter 简介用于以 Excel 2007+ XLSX 文件格式编写文件,相较之下 PhpSpreadsheet 支持更多的格式