我对 Selenium HTMLUnit 还很陌生,因此我正在寻求一些帮助来为我的 Spring Boot 应用程序中的导航按钮创建基本测试。
我正在尝试整合一些基本测试,以确保我的网络应用程序中的导航按钮按预期工作。我的方法是通过 Id 找到所需的导航按钮,单击它,然后检查当前 URL 是否是我期望进入的新页面。
...
private HtmlUnitDriver driver = new HtmlUnitDriver(true);
...
@Test
public void navigationTest() {
driver.get(BASE_URL);
WebElement button = driver.findElement(By.id("navigation_button_id"));
button.click();
String currentUrl = driver.getCurrentUrl();
Assert.assertThat(currentUrl, is(BASE_URL + "some_other_page"));
driver.close();
}
我尝试使用 .click() 方法(如上所示),我还尝试使用 Actions 对象而不是更简单的 .click() 方法(见下文)来执行导航,但这仍然没有工作。
Actions actions = new Actions(driver);
actions.click(button).build().perform();
目前的行为是 URL 没有从 BASE_URL 更改(例如 http://localhost:8080 ),我已经验证它可以手动工作(亲自单击),但我无法让测试单击按钮并告诉我 URL 已更改(表明用户已被带到新页面,例如 http://localhost:8080/some_other_page )。
任何人都可以提供一些建议来使其正常工作吗?我只需要在 HTMLUnit 中测试基本导航的最简单方法。
最佳答案
我建议您使用以下代码来导航目的:
继续前进:
driver.naviagte().forward();
向后:
driver.navigate().back();
为了解决您的问题,当您前进/后退时:使用以下代码等待某些元素:
WebDriver wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated("some element locator"));
然后使用driver.getCurrentUrl();
代码获取currentUrl。
希望这能帮助您解决问题。
如果您对此有任何疑虑,请告诉我。
关于Java HTMLUnit 测试导航按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832561/