selenium的定位
- id定位
find_element_by_id()方法通过id来定位元素
例如: find_element_by_id("kw")
find_element_by_id("su")
2.name 定位
HTML规定name来指定元素的名称,那么的属性值在当前页面中可以不唯一。通过那么定位百度输入框
find_element_by_name()方法通过name属性值来定位元素。由于百度收索框没有提供name属性,因此不能通过name属性来定位输入框
例如: find_element_by_name("wd")
3.class定位
HTML中规定class来指定元素的类名,可以定位输入框和收索框
find_element_by_class_name()方法通过class属性来定位元素。
例如:find_element_by_class_name("s_ipt")
find_element_by_class_name("bg_s_btn")
4.tag定位
通过tag_name定位百度输入框与百度按钮。
find_element_by_tag_name()方法通过元素的tag name来定位元素
例如:find_element_by_tag_name()
5.link定位
通过link专门定位文本链接。
通过link定位的链接如下:
find_element_by_link_text("新闻")
find_element_by_link_text("地图")
通过find_element_by_link_text()方法通过元素标签对之间的文本信息来定位元素。
6.parital link定位
partial link定位是对link定位的一种补充,有些文办理按揭过长,这是我么可以取文本链接的一部分定位,只要这一部分信息可以唯一的标识 这个链接
通过partiallink定位如下:
find_element_by _partial _link _text("很长文本链接的一部分")
find_element_by_partial_link_text()方法通过元素标签对之间的部分文本信息来定位元素。
7.Xpath定位
XPath有多种定位策略,因为HTML可以看做xml的一种shiyo实现,所以selenium用户可以使用这种你再强大的语言在web 应用中定位元素
7.1绝对路径定位
xpath有多种定位策略,最简单直观的就是写出元素的绝对路径。
find_element_by_xpath()方法使用XPATH语言来定位元素。Xpath主要使用标签名的层级关系来定位元素的绝对路径,最外层为html语言。在body文本内,一级一级往下查找。如果一个层级下有对各相同的标签名,那么就按上下顺序确定第几个。例如:div[2]表示当前层级下的第二个div标签。
7.2利用元素属性定位
除了使用绝对路径外,Xpath也可以使用元素的属性来定位。同样以百度收索框和搜索按钮为例:
find_element_by_xpath("//*[@id="kw"]")
find_element_by_xpath("//*[@id="su"]")
注:1.属性值要用用单引号表示
2.//表示当前页面的某个目录,input表示定位元素的标签名,[@id="kw"]表示元素的id属性值等于kw
下面是通过name 和class属性值来定位。
find_element_by_xpath("//*[@class="bg s_btn"]")
find_element_by_xpath("//input[@class="s_ipt]")
find_element_by_xpath("//input[@name="wd"]")
如果不想指定标签名,则可以用星号(*)代替,使用Xpath不局限于id,name和class这个三个属性值,元素的任意属性值都可以使用,只要它能唯一标识一个元素。
find_element_by_xpath("//input[@maxlength= '100']")
find_element_by_xpath("//input[@autocomplete='OFF']")
find_element_by_xpath("//input[@type='submit']")
7.3层级定位
find_element_by_xpath('''//span[@class='bg_s_ipt_wr']/input')
span[@class='bg_s_ipt_wr']通过class属性定位到父元素,后面/input就表示父元素下满的子元素。如果父元素没有利用的属性值。
find_element_by_xpath(“//form[@id='form']/span/input”)
find_element_by_xpath("//form[@id='form'span(2)/input]")
我们可以通过该方法一级一级的向上查找,知道找到最外层的<html>标签,即可写出一个绝对路径
7.4使用逻辑运算符
如何一个属性不能唯一区分一个元素,可以使用逻辑运算符连接多个属性来查找元素
8.CSS定位
CSS(Cascading Style Sheets)层叠样式表是一种语言,它用来表示HTML和XML文档的表现,CSS使用选择器来为页面绑定属性。这些选择器可以被Sselenium用做另外的定位策略。
id | name | class | parital link | |||||
方法 | find_element_by_id() | find_element_by_name() | find_element_by_class_name() | find_element_by_partial_link_text() | ||||
例子 |
find_element_by_id("kw") find_element_by_id("su") |
find_element_by_name("wd") |
find_element_by_class_name("s_ipt") find_element_by_class_name("bg_s_btn") |
find_element_by _partial _link _text("很长文本链接的一部分") | ||||
范围 | 1.输入框 | 输入框 | 输入框和收索框 |
selenium的定位的更多相关文章
- selenium之 定位以及切换frame(iframe)
Set<String> windows = driver.getWindowHandles(); int count = 0; for(String handl ...
- selenium各种定位方法(转)
selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...
- selenium的定位方式
1.selenium的定位方式 selenium有18种定位方式,8种单数,8种复数,2种父类 2.8种单数定位方式 from selenium import webdriverimport time ...
- 自动化测试基础篇--Selenium元素定位
摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...
- selenium配置文件定位元素
之前的写的selenium的定位元素进行测试的代码,现在一运行就报找不到元素了,之前运行的好好的. 我查看网站源码后,发现网站元素确实是变了,原来的定位的xpath代码压根全部找不到了,于是 想着,以 ...
- Selenium3 + Python3自动化测试系列二——selenium元素定位
一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...
- selenium iframe 定位 qq空间说说
selenium iframe 定位 qq空间说说
- py+selenium 无法定位ShowModalDialog模态窗口【已解决】
问题:无法定位弹出的模态窗口. 前瞻: 模态窗口:关闭之前,无法操作其他窗口. 但是selenium无法定位到这类窗口,百度说是目前selenium不支持处理模态窗口. 目标:定位到窗口里面的元素,完 ...
- python selenium八大定位方法
一.定位方法 注意:元素属性必须唯一存在 #id定位 find_element_by_id() #name定位 find_element_by_name() #class_name定位 find_el ...
- selenium元素定位之css选择器
在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...
随机推荐
- java 整除(/) 求余(%) 运算
1. java 整除(/) 求余(%) 运算 1.求余 System.out.println(11%2); //顾名思义就是11除2的余数-->1 System.out. ...
- Python_XML的三种解析方法
什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这 ...
- Asset Catalog Help (七)---Customizing Image Sets for Size Classes
Customizing Image Sets for Size Classes Add images to a set that are customized for display in diffe ...
- 3-3Java程序的结构
这是类的定义 这是主方法的定义 类里面包含一个主方法,或者是主方法嵌套到我们的类里面 大括号要特别注意,通过大括号我们可以看到类和主方法的包含关系 class后面一定是跟的类的名字
- 继承映射关系 joinedsubclass的查询
会出现下面这样的错一般是配置文件中的mapping和映射文件中的package路径或者class中的name路径不一致 org.hibernate.MappingException: Unknown ...
- C#中var关键字用法分析
原文连接 本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当 ...
- 51nod 1102 【单调栈】
思路: 对于这个高度往左能延伸最远x,往右能延伸最远y,(x+1+y)*w; 利用单调栈就行了: #include <cstdio> #include <stack> #inc ...
- 51nod 1348【next_permutation】
next_permutation的粗讲来自窝bin博客 两个重载函数,第二个带谓词参数_Comp,其中只带两个参数的版本,默认谓词函数为"小于". 返回值:bool类型 分析nex ...
- js 点击往div里添加图片(实例)
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- Unity3D 性能优化
Unity3D 性能优化 一.程序方面 01.务必删除脚本中为空或不需要的默认方法: 02.只在一个脚本中使用OnGUI方法: 03.避免在OnGUI中对变量.方法进行更新.赋值,输出变量建议在Upd ...