selenium(5):常用的8种元素定位
selenium的webdriver提供了18种(注意不是8种)的元素定位方法,比较常用的定位方法是如下8种,xpath和css定位更加灵活,需要重点掌握其中一个。
经常会用到的8种定位:
1.id定位:find_element_by_id(self, id_)
2.name定位:find_element_by_name(self, name)
3.class定位:find_element_by_class_name(self, name)
4.tag定位:find_element_by_tag_name(self, name)
5.link定位:find_element_by_link_text(self, link_text)
6.partial_link定位find_element_by_partial_link_text(self, link_text)
7.xpath定位:find_element_by_xpath(self, xpath)
8.css定位:find_element_by_css_selector(self, css_selector)
一、id定位:find_element_by_id(self, id_)

通过上面百度搜索栏的定位,看到有个id属性:id="kw",通过它的id属性定位到这个元素,同时在定位到搜索框后,用send_keys()方法,输入文本。

二、name定位:find_element_by_name(self, name)

通过上面百度新闻的定位,看到有个name属性:name="tj_trnews",通过它的name属性单位到这个元素。

三、class定位:find_element_by_class_name(self, name)

通过上面百度搜索栏的定位,看到有个class属性:class="s_ipt",通过它的class属性单位到这个元素。

四、tag定位:find_element_by_tag_name(self, name)

在上面的定位元素属性中,可以看到每个元素都有tag(标签)属性。如搜索框的标签属性input ,在一个页面中,相同的标签有很多,一般不用标签来定位。下面的例子,仅供参考和理解,运行会报错.

五、link定位:find_element_by_link_text(self, link_text)

定位百度页面上"hao123"这个按钮,从元素属性可以分析出,有个href = "http://www.hao123.com”说明它是个超链接,对于这种元素,可以用link属性定位。

六、partial_link定位find_element_by_partial_link_text(self, link_text)
有时候一个超链接它的字符串比较长,输入全称会显示很长,这时候可以用一模糊匹配方式,截取其中一部分字符串进行模糊匹配方式(截取其中一部分字符串)。例如在五中的例子“hao123”,只需输入“ao123”也可以定位到。

七、xpath定位:find_element_by_xpath(self, xpath)
以上定位方式都是通过元素的某个属性来定位的,如果一个元素它既没有id、name、class属性也不是超链接,这么办呢?或者说它的属性很多重复的。这个时候就可以用xpath解决。这个时候就可以用xpath解决。


八、css定位:find_element_by_css_selector(self, css_selector)
css是另外一种语法,比xpath更为简洁


selenium(5):常用的8种元素定位的更多相关文章
- selenium自动化测试——常见的八种元素定位方法
selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...
- Appium常用的3种元素定位方式
以最右App为例 .apk文件网盘地址: 链接:https://pan.baidu.com/s/1L4MYkhpb5ECe8XeaneTx_Q 提取码:0jqm 1.find_element_by_i ...
- 关于selenium的8种元素定位
selenium中有八种元素定位,分别是:id,name,class_name,tag_name,link_text.partial_link_text.xpath.css 简单的定位可以用 id.n ...
- Selenium:八种元素定位方法
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)
此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...
- Selenium 八种元素定位方法
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- selenium(1)-详细解读元素定位的八种方式
安装selenium和下载webdriver 安装selenium pip install selenium pip install selenium -U (判断是否有最新版本) 下载drive ...
- 【python+selenium的web自动化】- 8种元素定位方式详解
我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. 说明:以下操作统 ...
随机推荐
- 用python打造简单的cms识别
代码 #!/usr/bin/env python3 # coding:utf-8 #lanxing #判断代码,判断是否安装requests库 try: import requests except: ...
- Python2.7版本:定义类时为什么要继承object类?
********此答案摘自知乎,且经过自己实际运行后得出******** 继承 object 类的是新式类,不继承 object 类的是经典类 例子: 新式类: 经典类: B.C 是 A 的子类,D ...
- 深入理解JVM之类加载
---title: [学习]深入理解JVM之类加载.mddate: 2019-10-20 22:20:06tags: JVM 类加载--- Java类的加载,连接,初始化都是在程序运行期间执行的 ## ...
- MySQL中修改多个数据表的字段拼接问题
错误1: 异常:Truncated incorrect DOUBLE value: 'lili' 问题分析:我的修改sql语句是:update video set vname='汉字' and vdi ...
- Django之模板语言(三)------>自定义filter
1.自定义filter: 1.在app01下面新建一个templatetags的python package包. 如果没有app01的话,可以通过命令行在manage中进行创建:python mana ...
- pandas一些基本操作(DataFram和Series)_2
import numpy as nparr1 = np.arange(32).reshape(8,4)print(arr1)arr1 = arr1.reshape(-1);print(arr1)arr ...
- Vue.nextTick()的介绍和使用场景
每次都很好奇这个干嘛的,然后百度之后还是不明白.今天就彻彻底底好好的弄明白这是干嘛的!! 首先看一下vue文档 nextTick(),是将回调函数延迟在下一次DOM更新数据后调用,简单的理解是:当数据 ...
- switch的练习
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- [code]图像亮度调整enhancement
//draft 2013.9 //F=X2/u; ////远处细节被淹没. 亮的地方增亮明显,暗的地方更暗. 不可取. // CvScalar rgb; // rgb=cvAvg(src); //fo ...
- Jmeter运行原理
Jmeter运行原理: JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大,如果以进程的方式来运行每台负载机上的进程数量不会允许太多,当有大量并发时就需要大量的负载 ...