Селен (Java), java.lang.AssertionError
Я написал способ загрузки страниц навигации по ссылкам. Метод работает, но когда я добавил код для проверки правильного URL-адреса и заголовка вкладки, мой тест не был выполнен. Иногда случается, что для быстрых цикловых кликов на страницах, которые не загружаются, я не знаю, является ли это проблемой, но я не могу проверить, загружена ли страница с правильным URL-адресом или заголовком вкладки, или проблема заключается в том, код, который я написал для проверки правильности URL или заголовка вкладки.
Это мой метод:
public void showNavigationLinks(){
Actions action = new Actions(driver);
String[] submenus = {"Accessories", "iMacs", "iPads" , "iPhones" , "iPods" , "MacBook"};
for(int i=0;i<submenus.length;i++)
{
WebElement we = driver.findElement(By.xpath("//a[contains(.,'Product Category')]"));
wait(2000);
action.moveToElement(we).moveToElement(driver.findElement(By.xpath("//a[contains(.,'"+submenus[i]+"')]"))).click().build().perform();
wait(3000);
waitForElementToBeDisplayed(driver.findElement(By.xpath("//a[contains(.,'"+submenus[i]+"')]")) , 500);
Assert.assertTrue(driver.getCurrentUrl().toLowerCase().contains(submenus[i]));
Assert.assertTrue(driver.getTitle().contains(submenus[i]));
}
link_all_product.click();
}
Это моя ошибка:
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)
at PageObject.ProductPage.showNavigationLinks(ProductPage.java:627)
1 ответ
Один из ваших утверждений возвращает false, поэтому ваш текущий заголовок или URL не содержат submenus[i]
Вы конвертируете URL в нижний регистр здесь (driver.getCurrentUrl().toLowerCase()
), но вы сравниваете его с подменю, которое не является строчным. Это, вероятно, ваша проблема. Вот исправление:
String expected = submenus[i].toLowerCase();
String actualUrl = driver.getCurrentUrl().toLowerCase();
Assert.assertTrue(actualUrl.contains(expected));
В целях отладки вы можете просмотреть свой код, чтобы увидеть, что происходит, и / или вы можете сделать свою ошибку более значимой:
Assert.assertTrue("Expected: " + actualUrl + " to contain: " + expected,
actualUrl.contains(expected))