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类的多重继承问题深入分析
Nov 09 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
mac系统下Redis安装和使用步骤详解
Jul 09 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
Python爬虫爬取新闻资讯案例详解
Jul 14 Python
Python 绘制可视化折线图
Jul 22 Python
python logging模块的使用详解
Oct 23 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP 命令行参数详解及应用
2011/05/18 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
Python聊天室程序(基础版)
2018/04/01 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
大学生求职简历的自我评价
2013/10/14 职场文书
网络编辑职责
2014/03/01 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
学校远程教育工作总结
2015/08/11 职场文书
小学总务工作总结
2015/08/13 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
MySQL数据库 任意ip连接方法
2022/05/20 MySQL