UI测试之元素定位
定位方式优先级选择: ID>Name>CSS>XPath
1.使用id定位
2.使用name定位
3.使用class定位
4.使用css选择器定位
示例xml:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
路径表达式
|
结果
|
/bookstore/book[1]
|
选取属于 bookstore 子元素的第一个 book 元素。
|
/bookstore/book[last()]
|
选取属于 bookstore 子元素的最后一个 book 元素。
|
/bookstore/book[last()-1]
|
选取属于 bookstore 子元素的倒数第二个 book 元素。
|
/bookstore/book[position()<3]
|
选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
|
//title[@lang]
|
选取所有拥有名为 lang 的属性的 title 元素。
|
//title[@lang='eng']
|
选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
|
/bookstore/book[price>35.00]
|
选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
|
/bookstore/book[price>35.00]/title
|
选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
|
xpath元素定位
xpath = "//标签名[@属性='属性值']"
1. //input[@placeholder="请输入用户名"] # //指相对定位
![](https://img2018.cnblogs.com/blog/1450185/201909/1450185-20190906133518504-794924756.png)
2. //span[text()='登 录']
3. //div[@id='dvNavContainer']//span[text()='写 信'] # 仅用//span[text()='写 信']不能精确定位
![](https://img2018.cnblogs.com/blog/1450185/201909/1450185-20190902114511115-2059710180.png)
4.//input[contains(@id, '_subjectInput')] # contains 匹配一个属性值中包含的字符串
5.xpath->//span[contains(text(),"批量通过")] #xpath 定位包含指定文本内容的标签
![](https://img2018.cnblogs.com/blog/1450185/201909/1450185-20190908101727781-752793469.png)
6.
踩坑是成长最快的方式