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之web模板应用
Dec 26 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python+opencv识别图片中的圆形
Mar 25 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Python numpy数组转置与轴变换
Nov 15 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Pycharm中如何关掉python console
Oct 27 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 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 cookies中删除的一般赋值方法
2011/05/07 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
python安装教程
2018/02/28 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
基于Python实现简单学生管理系统
2020/07/24 Python
python中time、datetime模块的使用
2020/12/14 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
英语专业推荐信
2013/11/16 职场文书
出国英文推荐信
2014/05/10 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
小学校长开学致辞
2015/07/29 职场文书