Java HTMLUnit测试导航按钮
我对SeleniumHtmlunit很陌生,所以我正在寻找一些帮助,为我的SpringBoot应用程序中的导航按钮创建一个基本测试 我正在尝试进行一些基本测试,以确保我的webapp中的导航按钮按预期工作。我的方法是按Id找到所需的导航按钮,单击它,然后检查当前URL是否是我期望的新页面Java HTMLUnit测试导航按钮,java,selenium,htmlunit,ui-testing,Java,Selenium,Htmlunit,Ui Testing,我对SeleniumHtmlunit很陌生,所以我正在寻找一些帮助,为我的SpringBoot应用程序中的导航按钮创建一个基本测试 我正在尝试进行一些基本测试,以确保我的webapp中的导航按钮按预期工作。我的方法是按Id找到所需的导航按钮,单击它,然后检查当前URL是否是我期望的新页面 ... private HtmlUnitDriver driver = new HtmlUnitDriver(true); ... @Test public void navigationTest() {
...
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没有从基本URL更改(例如),我已验证它可以手动工作(亲自单击),但我无法让测试单击按钮并告诉我URL已更改(例如,显示用户已进入新页面)
有人能提供一些建议来让它工作吗?我只需要测试基本导航的最简单方法是在HTMLUnit中工作。我记得这样做的方式是等待/断言新页面加载。如果您不能做到这一点,请在
getCurrentUrl()
之前再等待几秒钟,我建议您使用以下代码进行导航:
要前进,请执行以下操作:
driver.naviagte().forward();
要向后移动,请执行以下操作:
driver.navigate().back();
为了解决您的问题,当您前进/后退时:使用以下代码等待某个元素:
WebDriver wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated("some element locator"));
然后使用driver.getCurrentUrl()获取当前URL代码>代码
希望这将帮助您解决您的问题。
如果您对此有任何疑问,请告诉我。使用driver.navigate.forward();-如果你明白我的意思,你肯定会先“倒退”一步?不幸的是,“WebDriverWait”解决方案也不起作用,它仍然停留在原始页面上,不断达到超时(在您的示例中为10秒)。你有一个我可以使用的工作示例吗?你能分享一个上面的工作代码示例吗?让我再次介绍步骤吗?1.你在第1页,想要点击一个按钮,这个按钮会将你重定向到新的页面,比如说第2页,你想要第2页的源代码