(UI自动化测试web端)第二篇:元素定位的方法_xpath路径定位
1、第一种xpath路径定位:
绝对路径:表达式是以 /html开头,元素的层级之间是以 / 分隔相同层级的元素可以使用下标,下标是从1开始的需要列出元素所经过的所有层级元素,工作当中一般不使用绝对路径
例:/html/body/div/fieldset/form/p[1]/input
绝对路径了解下就好了 。。
相对路径:匹配任意层级的元素,是以//tag_name或者//开头,也可以使用下标,下标是从1开始。//p[5]/button
# 导包selenium
from selenium import webdriver
import time
# 创建浏览器驱动对象
driver = webdriver.Chrome()
# 打开测试网站
driver.get("file:///E:/%E5%AD%A6%E4%B9%A0%E7%9B%B8%E5%85%B3/%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9B%B8%E5%85%B3/02/UI%E8%87%AA%E5%8A%A8%E5%8C%96V5.0%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/web%E7%AB%AF%E7%8E%AF%E5%A2%83/web%E8%AF%BE%E5%A0%82%E7%B4%A0%E6%9D%90/web/%E6%B3%A8%E5%86%8CA.html")
# 使窗口最大化
driver.maximize_window()# 使用相对路径定位用户名输入框,并输入:123
driver.find_element_by_xpath("//p[2]/input").send_keys("123")
# 等待3秒
time.sleep(3)
# 退出浏览器
driver.quit()
其实元素定位,只是用的方法不一样而已,find_element_by_xpath 、find_element_by_name、find_element_by_class、find_element_by_id
获取属性值时写法也要不一样,例如:
find_element_by_xpath:// 写路径定位
find_element_by_name:定位到后再找元素的属性名是name的
find_element_by_id:定位到后再找元素的属性名是id的