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 安装virtualenv和virtualenvwrapper的方法
Jan 13 Python
Python中matplotlib中文乱码解决办法
May 12 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
python多线程http压力测试脚本
Jun 25 Python
利用python实现周期财务统计可视化
Aug 25 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
Python random模块制作简易的四位数验证码
Feb 01 Python
基于python实现可视化生成二维码工具
Jul 08 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
Python数据处理的三个实用技巧分享
Apr 01 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 empty函数判断mysql表单是否为空
2010/04/12 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
javascript来定义类的规范小结
2010/11/19 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python heapq使用详解及实例代码
2017/01/25 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
中西医专业毕业生职业规划书
2014/02/24 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
文明旅游倡议书
2015/04/28 职场文书
2015年度女工工作总结
2015/10/22 职场文书