在XPath定位器中使用DOM标签是一个很好的做法



在我的测试用例中,我经常使用检查文本属性的XPath定位器。例如,

public By label(String text) {
    return By.xpath("//label[contains(text(),'"+text+"')]");
}

,在测试用例中,我会使用它:

webUI.verifyElementVisible(page.label("message"));

我正在使用标签,divs,Intups(占位符(,跨度等进行此操作。

这被认为是好的做法吗?

将来这样做的弊端是什么?

这大大缩短了我的开发时间,使我的页面对象存储库更加干净,简洁。

密钥点: CSS选择器由于其简单,速度和性能而在XPATH上强烈建议使用。

记住: XPath引擎在每个浏览器中都不同,因此使它们不一致。

特别是, IE没有本机XPath引擎,因此Selenium注入了自己的XPath引擎以兼容其API。因此,我们失去了使用WebDriver固有促进的本机浏览器功能的优势。

因此,更大的受众建议在XPATH上使用CSS。

示例:标签的CSS选择器(文本(:标签[for = city]

<label for="city">New York</label> 

这是我使用XPath的原因之一(另一个原因是向后dom树遍历(。我通常会在可能的情况下使用CSS选择器,但是当在页面上寻找特定文本时,XPath-Element [包含(。," text"(]是我的首选选择。

我认为这是检查动态创建的表元素的一种非常优雅的方式。

最新更新