无法验证TestNG断言方案

时间:2018-08-05 09:47:03

标签: selenium selenium-webdriver webdriver testng testng-eclipse

嗨,我正在学习硒。我的测试用例是验证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");
    }
}

1 个答案:

答案 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");