python中通过selenium简单操作及元素定位知识点总结

作者:幸运球与倒霉蛋 时间:2021-07-18 15:34:37 

 


浏览器的简单操作

# 导入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

应用场景:

页面显示为一个表格样式的数据列,需要通过组合来定位元素

来源:https://www.cnblogs.com/xingyunqiu/p/11495267.html

标签:python,selenium,元素定位
0
投稿

猜你喜欢

  • Python的函数使用详解

    2021-11-22 15:34:25
  • Python在groupby分组后提取指定位置记录方法

    2023-06-09 08:48:16
  • 用FrongPage设计网页花样

    2008-09-17 10:47:00
  • Python深度学习神经网络基本原理

    2023-05-08 20:20:32
  • 浅谈PyTorch的可重复性问题(如何使实验结果可复现)

    2021-07-16 06:34:33
  • asp显示数据库中表名、字段名、字段内容

    2008-06-17 18:09:00
  • 两大步骤教您开启MySQL 数据库远程登陆帐号

    2010-09-30 16:42:00
  • mysql查找删除表中重复数据方法总结

    2024-01-19 01:53:49
  • 用JS实现轮播图效果(二)

    2024-06-05 09:11:49
  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)

    2024-01-16 15:45:54
  • Python图片验证码降噪和8邻域降噪

    2023-09-16 10:05:49
  • OpenCV图像变换之傅里叶变换的一些应用

    2023-12-01 22:11:34
  • Python基于多线程操作数据库相关问题分析

    2024-01-26 05:18:21
  • MySQL表的增删改查(CRUD)

    2024-01-12 18:55:34
  • [Oracle] 浅谈Lock与Latch

    2024-01-15 18:02:37
  • Node.js中文件操作模块File System的详细介绍

    2024-05-13 10:04:47
  • 一文吃透Go的内置RPC原理

    2024-02-03 08:45:53
  • Python中Subprocess的不同函数解析

    2022-03-10 05:23:00
  • Python实现多线程爬表情包详解

    2022-05-26 01:30:55
  • 学会sql数据库关系图(Petshop)

    2012-10-07 10:34:49
  • asp之家 网络编程 m.aspxhome.com