Selenium何时使用By id/name/class/spath/css和page object



我开始使用selenium webdriver v2,我有几个问题:

  1. 何时使用By.id,By.name,By. classname,By.name。cssSelector, By.xpath…?

  2. 是否可以将所有By函数组合在同一个测试项目中?

  3. 何时使用页面对象?是否推荐用于动态站点?

  1. 您应该使用在阅读测试时更容易理解的选择器(有利于维护),并且更有可能及时保持稳定(也有利于维护)。因此,通常idname优于cssSelectorxpath

  2. 可以将所有的By函数合并到同一个测试项目中

  3. Page对象建议在测试量变大并且您希望减少重复代码的数量时使用。这适用于任何类型的网站(静态,动态)

何时使用By.id,By.name,By. classname,By.class。cssSelector, By.xpath…?

当代码更容易阅读时,最好使用

。由于XPath更难阅读,所以最好使用其他选择器。

示例:
driver.findElement(By.id("password"))

示例难以阅读:

driver.findElement(By.xpath(".//div/div[5]/header/form/fieldset/input[1]"))

所以在第一个例子中你可以确切地说这是密码字段,但在第二个例子中你就不能这么说了

是否可以在同一个测试项目中组合所有的By函数?

是的。

何时使用页面对象?是否推荐用于动态站点?

你可以在大多数网站上使用pageObject。但更适合中型或大型项目。将更容易维护测试

最新更新