Selenium何时使用by id / name / class / spath / css和page对象

时间:2015-05-27 06:09:30

标签: java selenium testing

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

  1. 何时使用By.id,By.name,By.className,By.cssSelector,By.xpath ......?

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

  3. 何时使用页面对象?是否建议用于动态网站?

2 个答案:

答案 0 :(得分:0)

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

  2. 可以在同一测试项目中组合所有By函数。

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

答案 1 :(得分:0)

  

何时使用By.id,By.name,By.className,By.cssSelector,By.xpath ......?

更容易阅读代码时使用。 由于XPath难以阅读,因此最好使用其他选择器。

示例易于阅读:

driver.findElement(By.id("password"))

示例难以阅读:

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

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

  

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

  

何时使用页面对象?是否建议用于动态网站?

您可以在大多数网站上使用pageObject。但对中型或大型项目更好。将更容易维持测试