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冒泡排序简单实现方法
Jul 09 Python
Python字符编码判断方法分析
Jul 01 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
Python动态生成多维数组的方法示例
Aug 09 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 Python
python 图像平移和旋转的实例
Jan 10 Python
Django REST framework视图的用法
Jan 16 Python
pytorch模型存储的2种实现方法
Feb 14 Python
Python sklearn中的.fit与.predict的用法说明
Jun 28 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
python实现语音常用度量方法的代码详解
May 25 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
php操作xml
2013/10/27 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
JavaScript 继承详解(四)
2009/07/13 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
Python检测生僻字的实现方法
2016/10/23 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
Python request post上传文件常见要点
2020/11/20 Python
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
物流经理自我评价
2013/09/23 职场文书
2014年商场工作总结
2014/11/22 职场文书
公务员年度个人总结
2015/02/12 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS