1 xpath元素定位
1.1 什么是xpath
总结:xpath是用来在xml文件中进行元素定位的标记语言,html
是一种特殊的xml,所以xpath也可以用在html中
1.2 Xpath定位策略
路径定位
属性定位
属性与逻辑结合
属性与层级结合
定位方法: find_element_by_xpath(xpath) # xpath表达式
按Ctrl+F 可以在搜索框对xpath和css表达式进行校验
1.2.1 路径定位
绝对路径 表达式是以 /html开头,元素的层级之间是以 / 分 隔
相同层级的元素可以使用下标,下标是从1开始.需要列出元素所经过的所有层级元素 , 工作当中, 一般不使用绝对路径
例:/html/body/div/fieldset/form/p[1]/input
相对路径 匹配任意层级的元素, 是以 //tag_name或者**//*** 开 头
也可以使用下标,下标是从1开始。
例子://p[5]/button
导包
import time
from selenium import webdriver
创建浏览器驱动对象
driver = webdriver.Chrome()
打开测试网站
driver.get(“文件路径”)
通过xpath的绝对路径定位用户名输入框并输入admin
driver.find_element_by_xpath("/html/body/div/fieldset/form/p/input").send_keys(“admin”)
等待3S
time.sleep(3)
通过xapth的相对路径定位密码输入框并输入123
driver.find_element_by_xpath("//form/p[2]/input").send_keys(“123”)
等待3S
time.sleep(3)
退出
1.2.2 元素属性定位
//或者//tag_name //[@attribute=‘value’] # attribute表示的是元素的属性名,value表示的是元素对应属性值
如果使用class的属性进行元素定位,需要用到class里面所有的值
1.2.3 属性与逻辑结合定位
//* 或者//tag_name 开头 //*[@attribute1=‘value1’ and@attribute2=‘value2’]
driver.quit()
导包
import time
from selenium import webdriver
创建浏览器驱动对象
driver = webdriver.Chrome()
打开测试网站
driver.get(“文件路径”)
利用元素的属性信息精确定位用户名输入框,并输入:admin
driver.find_element_by_xpath("//*[@placeholder=‘请输入用户名’]").send_keys(“ad