selenium八大元素定位方法
1.ID定位
可以根据元素的id来定位属性,id是当前整个HTML页面中唯一的,所以可以通过id属性来唯一定位一个元素,是首选的元素定位方式。(动态ID不做考虑)

# 导入webdriver和By
from selenium import webdriver
from selenium.webdriver.common.by import By # 实例化浏览器驱动
driver = webdriver.Chrome() # 定位方式一
ele1 = driver.find_element_by_id("kw")
# 定位方式二
ele2 = (By.ID,"kw")
2.name定位
根据元素的name来定位属性,但name并不是唯一的。

# 定位方式一
ele1 = driver.find_element_by_name("wd")
# 定位方式二
ele2 = (By.NAME,"wd")
3.class name定位
根据Class定位属性,主要是用来元素进行分组,并对这一级元素设置相同的样式。所以class属性在当前html页面当中,也是不能唯一定位到一个元素的,class的属性只有一个值。
注意:find_element_by_class_name这个方法的参数只能是一个class值,列如:class属性有空格隔开两个class的值时,只能选取其中一个进行定位。

# 定位方式一
ele1 = driver.find_element_by_class_name("s_ipt")
# 定位方式二
ele2 = (By.CLASS_NAME,"s_ipt")
4.tag name定位
通过元素的标签名来定位元素,如:input标签、span标签
ele = driver.find_element_by_tag_name()
5.6.link_text和partial_link_text定位
link_text和partial_link_text是作用于链接a标签的,link_text用于全部匹配文本值,partial_link_text用于部分匹配文本值。

driver.find_element_by_link_text("抗击肺炎")
driver.find_element_by_partial_link_text("肺炎")
7.css定位
通过组合的方式进行定位,和XPATH定位方式基本相同。
ele = driver.find_element_by_css_selector(css表达式)
8.xpath定位
xpath基本定位语法:

ele = find_element_by_xpath(xpath表达式)
xpath定位分为绝对定位和相对定位
绝对定位 (/):严格按照路径、同级元素的位置来定位,缺点:页面一动,基本崩溃 以/开头 父/子
例如:/html/body/div[2]/div/form/div[1]/input #div[2]:2表示div同级目录下的第二个div
相对定位(//):有一个参照物 不考虑路径和位置,只考虑:有还是没有!! 以//开头 //标签名[@属性名称=值]
例如:
1、//input[@name="phone"] # 标签名为input并且name属性值为phone
2、and or 用法
//input[@name="phone" and @datatype="m"]
3、包含 //标签名[contains(@属性值,被包含的值)]
//input[contains(@class,"username") and @name="phone"]
4、文本内容定位 text()=值
//a[text()="数据分析 "]
//a[contains(text(),"数据分析")]
5、层级定位
//div[@id="u1"]//a[@name="tj_login"]
6、轴定位
轴运算:
ancestor:祖先结点 包括父
parent:父结点 给g
preceding: 当前元素节点标签之前的所有结点。(html页面先后顺序)
preceding-sibling: 当前元素节点标签之前的所有兄弟结点
following: 当前元素节点标签之后的所有结点。(html页面先后顺序)
following-sibling:当前元素节点标签之后的所有兄弟结点
使用语法:
/轴名称::节点名称[@属性=值]
例://div//table//td//preceding::td
与css定位的比较:

selenium八大元素定位方法的更多相关文章
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- Selenium Web元素定位方法
Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...
- Selenium常见元素定位方法和操作的学习介绍
参考地址: https://www.cnblogs.com/eastmount/p/4810690.html 这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操 ...
- 5 Python+Selenium的元素定位方法(xpath)
[环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和 ...
- 4 Python+Selenium的元素定位方法(link/partial link)
[环境] Python3.6+selenium3.0.2+IE11+win7 [定位方法] 1.link/partial link定位方法:定位的元素为文字链接且链接很长时 方法:find_eleme ...
- 3 Python+Selenium的元素定位方法(id、class name、name、tag name)
[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:fin ...
- selenium的元素定位方法-By
如果在定位元素属性中包含了如ID等元素属性,那么在一个测试中,定位方法具体有哪几种,可以参考by模块中的By类,By的代码如下: class By(object): """ ...
- 6 Python+Selenium的元素定位方法(CSS)
[环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比 ...
随机推荐
- 【对线面试官】Java注解
public void send(String userName) { try { // qps 上报 qps(params); long startTime = System.c ...
- Windows Server 2016介绍与安装
版本介绍 Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的.它对应于Windows S ...
- 【进程/作业管理】篇章一:Linux进程及其管理(系统监控类工具)----glances、dstat
glances dstat glances命令详解 相对于htop工具的使用,这里介绍一下glances工具的使用,我个人是比较喜欢这款工具的,主要就是由于glances这款工具可以将系统状态 ...
- 2.mysql explain命令详解
EXPLAIN详解 SQL编写和解析 编写过程 select-distinct-from-join-on-where-group by-having-order by-limit- 解析过程 from ...
- JAVA中IO流详解
IO流:数据传输是需要通道的,而IO流就是数据传输的通道. IO流可以形象的比喻为运送货物的传输带. IO流的分类: ①根据操作的数据类型的不同可以分为 :字节流与字符流. ②根据数据的流向分为:输入 ...
- java中邮件通知
// 客户信息 Tkhxx tkhxx = new Tkhxx(); try { String msg = tkhxx.toString(); MailUtil.simpleMailSend(Mail ...
- java 去掉html标签 使用正则表达式删除HTML标签。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLSpirit{ public stat ...
- Arduino IDE 开发ESP-01/ESP8266-01读取DHT11温度湿度传感器
引脚接线: DHT11---ESP8266-01 Singnal--IO2, GND----GND, VCC----VCC DHT11引脚说明: ESP8266-01/ESP8266-01S引脚说明: ...
- 「每日一题」有人上次在dy面试,面试官问我:vue数据绑定的实现原理。你说我该如何回答?
关注「松宝写代码」,精选好文,每日一题 时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 来源:原创 一.前言 文章首发在「松宝写代码」 2020. ...
- 聊聊并发,进程通信方式,go协程简单应用场景
开篇提问 知道并发,并行,线程,协程概念吗?或者知道大概含义吗? 有线程为什么还要有协程?区别是什么? 『进程』通信方式知道几种?有没有超过3种? golang『协程』通信方式推荐? 使用并发的目的是 ...