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实现通过shelve修改对象实例
Sep 26 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python matplotlib坐标轴设置的方法
Dec 05 Python
在python里从协程返回一个值的示例
Feb 19 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
Python异常模块traceback用法实例分析
Oct 22 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
浅析Python requests 模块
Oct 09 Python
Python timeit模块原理及使用方法
Oct 10 Python
python实现的人脸识别打卡系统
May 08 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 24 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
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python Web版语音合成实例详解
2019/07/16 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
几个Linux面试题笔试题
2016/08/01 面试题
创联软件面试题笔试题
2012/10/07 面试题
社团2014年植树节活动总结
2014/03/11 职场文书
2014年保密工作总结
2014/11/22 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
小学校长开学致辞
2015/07/29 职场文书
mysql部分操作
2021/04/05 MySQL