Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTMLUnit测试导航按钮_Java_Selenium_Htmlunit_Ui Testing - Fatal编程技术网

Java HTMLUnit测试导航按钮

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() {

我对SeleniumHtmlunit很陌生,所以我正在寻找一些帮助,为我的SpringBoot应用程序中的导航按钮创建一个基本测试

我正在尝试进行一些基本测试,以确保我的webapp中的导航按钮按预期工作。我的方法是按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没有从基本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页的源代码