python中通过selenium简单操作及元素定位知识点总结


Posted in Python onSeptember 10, 2019

 

浏览器的简单操作

# 导入webdriver模块

# 创建driver对象,指定Chrome浏览器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 访问百度
driver.get("http://baidu.com")
driver.get("http://sina.com")
# 后退
driver.back()
# 前进
driver.forward()
# 刷新
driver.refresh()

# 关闭窗口
driver.close()
# 关闭会话,关闭浏览器,关闭chromedriver
driver.quit()

selenium的8种定位方式

6种靠单一的特征来找元素(id, calss_name, tag_name, name, link_text(2))

组合各种特征和关系来找元素(xpath, css)

1.id定位:唯一

find_element_by_id()

2.name定位:不唯一

find_element_by_name()

find_elements_by_name()

3.class定位:不唯一

find_element_by_class()

4.tag_name定位:不唯一

find_element_by_tag_name()

# 单数,在DOM页面中,匹配到的第一个元素

find_elements_by_tag_name()

# 复数,返回的是一个列表,元素为webElement对象,全部匹配的元素

5.文本匹配:/完全匹配/部分匹配

find_element_by_link_text()

find_element_by_partial_link_text()

Xpath定位:

1.通过自己来定位:

语法://标签名[@属性名=值]

例如:

//*[@id="mCon"]/span

# *匹配所有元素

//*[@id="kw"]

2.通过文本来定位:

语法://标签名[text()="值"]

例如:

//h1[(text()= "第20期")]

# 完全匹配

//h1[contains(text(), "第20期")]

# 部分匹配,包含

3.层级定位:

如果找到的元素有两个或多个完全一样的元素,那么就通过他们不同的父级或父级的父级来定位

/ 绝对定位,单斜杠只能写子级,不能跳级写

// 相对定位,双斜杠可以写子级,子级的子级等等(推荐使用)

举例说明:

python中通过selenium简单操作及元素定位知识点总结

l 输入账号

//div//input[@name="account"]

//div[@class="padding-cont pt-login"]//input[@placeholder="邮箱/账号/手机号"]

l 输入密码

//div[@class="padding-cont pt-login"]//input[@name="pass"]

//div[@class="padding-cont pt-login"]//input[@type="password"]

l 下次自动登录

//div[@class="padding-cont pt-login"]//a[text()="下次自动登录"]

//div[@class="padding-cont pt-login"]//a[@class="auto-login fl"]

l 忘记密码

//div[@class="padding-cont pt-login"]//a[@class="forget fr"]

//div[@class="padding-cont pt-login"]//a[text()="忘记密码?"]

l 登录按钮

//div[@class="padding-cont pt-login"]//a[@class="btn-btn"]

//div[@class="padding-cont pt-login"]//a[text()="登录"]

Xpath轴定位:

含义:通过同级目录来定位元素,叫做轴定位

轴运算:

ancestor:祖先节点,包括父节点

parent:父节点

preceding-sibling:当前元素节点标签之前的所有兄弟节点

following-sibling:当前元素节点标签之后的所有兄弟节点

preceding:当前元素节点标签之前的所有节点(HTML页面先后顺序)

following:当前元素节点标签之后所有的节点(HTML页面先后顺序)

轴定位语法:

/轴名称::标签名称[@属性名=值]

示例:例://div//table//td//preceding::td

应用场景:

页面显示为一个表格样式的数据列,需要通过组合来定位元素

以上就是本次介绍的全部知识点内容,感谢大家对三水点靠木的支持。

Python 相关文章推荐
python文件和目录操作方法大全(含实例)
Mar 12 Python
python之wxPython菜单使用详解
Sep 28 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
Python button选取本地图片并显示的实例
Jun 13 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
全网最全python库selenium自动化使用详细教程
Jan 12 Python
如何在Python中妥善使用进度条详解
Apr 05 Python
用Python画一个LinkinPark的logo代码实例
Sep 10 #Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 #Python
django drf框架自带的路由及最简化的视图
Sep 10 #Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 #Python
python3.7环境下安装Anaconda的教程图解
Sep 10 #Python
Windows10下 python3.7 安装 facenet的教程
Sep 10 #Python
python 图像处理画一个正弦函数代码实例
Sep 10 #Python
You might like
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
Python抽象类的新写法
2015/06/18 Python
Python简单实现enum功能的方法
2016/04/25 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python Web版语音合成实例详解
2019/07/16 Python
python实现126邮箱发送邮件
2020/05/20 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
Python操作Excel的学习笔记
2021/02/18 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
一名女生的自荐信
2013/12/08 职场文书
狼和鹿教学反思
2014/02/05 职场文书
民主评议党员工作总结
2014/10/20 职场文书
运动会致辞稿
2015/07/29 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
java设计模式--原型模式详解
2021/07/21 Java/Android