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程序设计入门(1)基本语法简介
Jun 13 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
python修改字典键(key)的方法
Aug 05 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
如何使用python切换hosts文件
Apr 29 Python
python 双循环遍历list 变量判断代码
May 04 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 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
destoon找回管理员密码的方法
2014/06/21 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP文件操作详解
2016/12/30 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
php集成开发环境详解
2019/09/24 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
AngularJS内置指令
2015/02/04 Javascript
理解javascript正则表达式
2016/03/08 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Python入门篇之列表和元组
2014/10/17 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
flask框架中的cookie和session使用
2021/01/31 Python
C语言笔试题回忆
2015/04/02 面试题
竞职演讲稿范文
2014/01/11 职场文书
迟到检讨书500字
2014/02/05 职场文书
超市中秋节促销方案
2014/03/21 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL