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 08 Python
在Django的视图(View)外使用Session的方法
Jul 23 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
Dec 18 Python
python实现机器人行走效果
Jan 29 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
python selenium循环登陆网站的实现
Nov 04 Python
Python3 Click模块的使用方法详解
Feb 12 Python
python解释器安装教程的方法步骤
Jul 02 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
一文读懂python Scrapy爬虫框架
Feb 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
文件上传程序的全部源码
2006/10/09 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python类属性与实例属性用法分析
2015/05/09 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python 杀死自身进程的实现方法
2019/07/01 Python
详解Python3 pickle模块用法
2019/09/16 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python能做什么
2020/06/02 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
岗位职责风险防控
2014/02/18 职场文书
政府门卫岗位职责
2014/04/29 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript