我开始使用selenium webdriver v2,我有几个问题:
何时使用By.id,By.name,By.className,By.cssSelector,By.xpath ......?
在同一测试项目中组合所有By函数是否可以?
何时使用页面对象?是否建议用于动态网站?
答案 0 :(得分:0)
您应该使用在阅读测试时更容易理解的选择器(有利于维护),并且有更多机会及时保持稳定(也适合维护)。通常,id
和name
优于cssSelector
和xpath
。
可以在同一测试项目中组合所有By函数。
当您的测试量变大并且您希望减少重复代码的数量时,建议使用页面对象。这适用于任何类型的网站(静态,动态)
答案 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。但对中型或大型项目更好。将更容易维持测试