嗨,我正在学习硒。我的测试用例是验证Guru99网站中“测试”选项卡下是否存在“ Learn SoapUI”链接。当我使用 if 条件时,它将通过,当我使用 Assertion 语句时,条件将失败。 Plz帮助mw提供代码。 网址: https://www.guru99.com/ 我的代码:
@Test
public void Sample() {
driver=new FirefoxDriver();
driver.get("https://www.guru99.com/");
List<WebElement> TESTING= driver.findElements(By.xpath("//div[@class='featured-box cloumnsize1']//ul[1]//li"));
for(int i=0;i<TESTING.size();i++) {
Assert.assertEquals(TESTING.get(i).getText().equals("Learn SoapUI"), true);
System.out.println("Learn SoapUI link is present");
//*********************************************************************
if(TESTING.get(i).getText().equals("Learn SoapUI")) {
System.out.println("Learn SoapUI Testing link is in list");
}
}
答案 0 :(得分:2)
在您的代码中,您正在检查集合中每个元素的文本。如果firs元素的文本不会了解SoapUI ,则测试将立即失败。
简单的方法是获取所有元素的文本,将它们放入字符串列表,并检查该列表中是否包含 Learn SoapUI 。
这是您所做的更改的代码:
driver=new FirefoxDriver();
driver.get("https://www.guru99.com/");
// Getting all elements from the cours
List<WebElement> TESTING = driver.findElements(By.xpath("//div[@class='featured-box cloumnsize1']//ul[1]//li"));
// Getting text from the each element and putting to List of Strings
List<String> listSoapCourses = TESTING.stream().map(WebElement::getText).collect(Collectors.toList());
// Verification that Learn SoapUI exists in the list of courses
Assert.assertTrue(listSoapCourses.contains("Learn SoapUI"), "Error message: Learn SoapUI not contains in the list of courses");