Python selenium模块实现定位过程解析


Posted in Python onJuly 09, 2020

selenuim模块定位方法

1,我们想要操作html页面上的元素,首先必须要定位到这个元素上。每个元素都有他各自的属性,比如id,name,class等,我们就通过这些属性来定位元素。

 2,我们先打开一个网页,按F12来获取这个网页的源代码,方便我们定位元素。

from selenium import webdriver 
 driver=webdriver.Chrome() #启动谷歌浏览器
 driver.get("http://www.baidu.com")  #打开百度网页

Python selenium模块实现定位过程解析

 3,按F12我们获取到元素,鼠标点击图片红框中的标,然后把鼠标放到你想要获取的元素位置,然后右边代码会自动定位。

定位方法详解

 1.用id定位

Python selenium模块实现定位过程解析

我们可以看到右边代码元素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来定位,但是标签名字太容易重复,除非想定位一组相同标签的元素,否则一般不推荐使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Python KMeans聚类问题分析
Feb 23 Python
Python切片操作深入详解
Jul 27 Python
python用pandas数据加载、存储与文件格式的实例
Dec 07 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
Python程序控制语句用法实例分析
Jan 14 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Pyside2中嵌入Matplotlib的绘图的实现
Feb 22 Python
Python 全局空间和局部空间
Apr 06 Python
Python自动化操作实现图例绘制
Jul 09 #Python
解决pip install psycopg2出错问题
Jul 09 #Python
利用python下载scihub成文献为PDF操作
Jul 09 #Python
Python scrapy爬取小说代码案例详解
Jul 09 #Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 #Python
pytorch 多分类问题,计算百分比操作
Jul 09 #Python
详解Python 循环嵌套
Jul 09 #Python
You might like
探讨:如何编写PHP扩展
2013/06/13 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php的ajax简单实例
2014/02/27 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
js实现简单的验证码
2015/12/25 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
关于vue-resource报错450的解决方案
2017/07/24 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
Python中的yield浅析
2014/06/16 Python
Python实现的端口扫描功能示例
2018/04/08 Python
Python中断多重循环的思路总结
2019/10/04 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
师范教师毕业鉴定
2014/01/13 职场文书
道德演讲稿
2014/05/21 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
单位接收函格式
2015/01/30 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers