在我的测试案例中,我经常使用更多的XPath定位器来检查文本属性。例如,
public By label(String text) {
return By.xpath("//label[contains(text(),'"+text+"')]");
}
在测试用例中,我将其用作:
webUI.verifyElementVisible(page.label("message"));
我正在使用标签,div,输入(占位符),跨度等进行此操作。
这被认为是好的做法吗?
将来这样做的不利之处是什么?
这大大缩短了我的开发时间,使我的页面对象存储库更加简洁明了。
答案 0 :(得分:3)
关键点:由于XPath的简单性,速度和性能,强烈建议在XPath上使用CSS选择器。
记住:每种浏览器中的Xpath引擎都不同,因此使其不一致。
特别是,IE没有本机的xpath引擎,因此selenium会注入自己的xpath引擎以实现其API的兼容性。因此,我们失去了使用WebDriver固有的本机浏览器功能的优势。
因此,较大的受众群体建议在Xpath上使用CSS。
示例:标签(文本)的CSS选择器:label [for = city]
<label for="city">New York</label>
答案 1 :(得分:2)
那是我使用Xpath的原因之一(另一个原因是向后DOM树遍历)。我通常会尽可能使用CSS选择器,但是当在页面上查找特定文本时,Xpath-element [contains(。,“ text”)]是我的首选。
例如,我认为这是检查动态创建的表元素的一种非常优雅的方法。