Ste*_*ike 6 java junit selenium-webdriver
经过大量的搜索和阅读,我仍然不清楚使用Webdriver处理失败的断言的最佳方法.我原以为这是一个常见的核心功能.我想做的就是:
我想为非技术受众呈现结果,因此让它使用完整堆栈跟踪抛出'NoSuchElementExceptions'是没有用的.我只想要一个好消息.
我的测试:
@Test
public void isMyElementPresent(){
// WebElement myElement driver.findElement(By.cssSelector("#myElement"));
if(driver.findElement(By.cssSelector("#myElement"))!=null){
System.out.println("My element was found on the page");
}else{
System.out.println("My Element was not found on the page");
}
}
Run Code Online (Sandbox Code Playgroud)
当我强制失败时,我仍然会抛出NoSuchElementException.我还需要尝试/捕获吗?我是否可以合并Junit断言和/或Hamcrest来生成更有意义的消息而无需System.out.println?
Vis*_*ish 10
我遇到过类似的情况.按照的Javadoc的findElement和findElementsAPI的,看来该findElement行为是由设计.您应该findElements用来检查不存在的元素.
因为在您的情况下,WebElement可能不存在,您应该使用findElements.
我用这个如下.
List<WebElement> elems = driver.findElements(By.cssSelector("#myElement"));
if (elems.size == 0) {
System.out.println("My element was not found on the page");
} else
System.out.println("My element was found on the page");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21030 次 |
| 最近记录: |