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框架Flask信号机制(signals)介绍
Jan 01 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
python中的数据结构比较
May 13 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
详解python对象之间的交互
Sep 29 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python实现双人五子棋(终端版)
Dec 30 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 Python
Django程序的优化技巧
Apr 29 Python
Python加密与解密模块hashlib与hmac
Jun 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
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
php命令行模式代码实例详解
2021/02/26 PHP
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
JS的反射问题
2010/04/07 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
vue实现计步器功能
2019/11/01 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
django框架两个使用模板实例
2019/12/11 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
How TDD works
2012/09/30 面试题
力学专业毕业生自荐信
2013/11/17 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
保安辞职信范文
2015/02/28 职场文书