一、webdriver定位方法
1、****id 定位
driver.find_element_by_id()
2、****name定位
driver.find_element_by_name()
3、****class定位
driver.find_element_by_class_name()
4、link定位-->精准定位
driver.find_element_by_link_text()
5、partial_link定位-->模糊定位
driver.find_element_by_partial_link_text()
6、tag_name定位-->标签名定位
找到页面上所有标签名为input的标签,返回一个列表
driver.find_elements_by_tag_name()
7、css选择器
driver.find_element_by_css_selector()
8、xpath定位
// 2个斜杠表示相对路径 *表示任意标签
driver.find_element_by_xpath()
9、****By方法
from selenium.webdriver.common.by import By
1)driver.find_element(By.XXX,’定位值’)
XXX为上述八种定位方法名称,该方法元素值可以用元组格式定义,
适用于页面元素的批量管理。
2)driver.find_elements(By.XXX,’定位值’)
该方法会定位符合条件的所有元素,以列表格式返回
- xpath定位方法详解
1、****xpath基本定位用法
1)**** 使用属性值定位****
driver.find_element_by_xpath(‘//标签名[@属性名=“属性值”]’)
原则上只要是唯一值都可以使用
Eg:-- driver.find_element_by_xpath('//input[@id="loginUsername"]')
-- driver.find_element_by_xpath('//input[@class="form-control tecon required"]')
-- driver.find_element_by_xpath('//input[@placeholder="[email protected]"]')
2)****使用多个属性值定位
-不同属性值可用逻辑运算符连接,如and、or
--driver.find_element_by_xpath(‘//标签名[@属性名1=“属性值1” and @属性名2=“属性值2”]’)
-也可以分开填写
--driver.find_element_by_xpath(‘//标签名[@属性名1=“属性值1”][ @属性名2=“属性值2”]’)
Eg:--driver.find_element_by_xpath('//input[@id="loginUsername" and @name="username"]')
--driver.find_element_by_xpath('//input[@id="loginUsername"][@name="username"]')
2、****xpath相对路径/绝对路径定位
1)****绝对路径
以 / 开头,根据标签名从根目录开始一级一级定位下来,例如定位ID输入框。
/html/body/div[2]/div/div/from/div[3]/input
2)****相对路径
以 // 开头,需要定位的元素没有唯一属性值,但其父级、子级、兄弟级元素有唯一属性值的情况下可使用。
例如想定位ID输入框的父级元素,但其class属性与密码输入框父级相同,直接用class属性定位不是唯一值。就可以先定位ID输入框元素来逆向定位他的父级元素。
//input[@id="loginUsername"]/..
回到上级目录用 .. 表示,跟linux操作相同。
3、****xpath文本、模糊、逻辑定位
1)****文本定位
元素中含有文本且基本不会改变的元素可以直接使用文本定位
例如登录按钮定位值可表达为
//button[text()=”Login”]
2)****模糊定位
在遇到动态属性值时可以使用,基于contains() 、starts-with()、ends-with()这三函数
1))contains() 包含xxx的属性值
//button[contains(@class,"btn")]
2))starts-with() 以xxx开头的属性值
//button[starts-with(@class,"btn")]
3))ends-with()以xxx结尾的属性值
//input[ends-with(@class,"btn-box")]
版权归原作者 I'm not zelda! 所有, 如有侵权,请联系我们删除。