【发布时间】:2021-11-08 04:22:00
【问题描述】:
我有一种搜索方法,第一页上有一个维基百科的链接:
public void findWiki() {
TryLink = chromeDriver.findElement(By.xpath("//a[@href='https://ru.wikipedia.org/wiki/%D0%A8%D0%BF%D0%B0%D0%B6%D0%BD%D0%B8%D0%BA']"));
if (TryLink.isDisplayed()) {
System.out.println("Yes link is there");
} else {
System.out.println("No link is there");
}
}
该方法的实现:
@Test
public void googleSearchPF() {
chromeDriver.get("https://www.google.com/webhp?hl=en&sa=X&ved=0ahUKEwi88p6D9vbyAhXhkIsKHffmA_oQPAgI");
GoogleSearchPF googleSearchPF = PageFactory.initElements(chromeDriver, GoogleSearchPF.class);
googleSearchPF.find("Gladiolus");
googleSearchPF.findWiki();
}
测试有效,一切正常 - 它找到了链接。但是如何使用 assertTrue 实现链接检查?如果有,具体是怎样的?
看来应该是这样实现的:
Assertions.assertTrue(googleSearchPF.getAllElements().stream().anyMatch(x->x.isDisplayed()),
"Wikipedia was not found");
【问题讨论】:
-
这真的是测试没有业务代码吗?你为什么不直接做
assertTrue(TryLink.isDisplayed())? -
为什么
googleSearchPF被@Test注解?据我所知,该方法本身并不是测试。 -
这不是商业代码。 googleSearchPF - 一个真正有效的测试。我只是想弄清楚如何正确编写 Assert 方法,以便在不使用 if else 的情况下正确检查链接。