gpt4 book ai didi

java - TestBench无法打开浏览器

转载 作者:行者123 更新时间:2023-12-01 08:51:03 26 4
gpt4 key购买 nike

我正在尝试使用 Vaadin TestBench 设置我的第一个非常简单的 UX 测试。为了避免下载驱动程序和设置 System.properties 或 PATH 值的麻烦,我还使用 WebDriverManager图书馆。

为了让事情变得更加棘手,我们的登录页面是一个 JSP,我们需要先打开它并进行身份验证,然后才能测试 Vaadin 应用程序。

这是我一直在尝试的简单测试:

public class LoginIT extends TestBenchTestCase {

private static final String URL="http://localhost:8080/";

@Before
public void setup() throws Exception {
ChromeDriverManager.getInstance().setup();
setDriver(new ChromeDriver());
}

@After
public void tearDown() throws Exception {
if (getDriver() != null) {
getDriver().quit();
}
}

@Test
public void testLogin_success() {
getDriver().get(URL);
Assert.equals(URL, getDriver().getCurrentUrl());
WebElement usernameField = driver.findElement(By.name("username"));
}
}

上面的简单测试将传递 currentUrl 断言。但是,它无法找到该元素。 enter image description here

我认为这里有两个问题。

  1. 浏览器无法打开/导航至该 URL。如果 Chrome 已打开,则运行测试时 Chrome 不会打开新选项卡/页面。或者,如果我允许它启动浏览器,它会在不打开页面(在 Mac OSX 上)的情况下启动浏览器,因此我永远无法直观地确认它导航到 URL。

我尝试过使用 Firefox,它显然与 Selenium 存在很多问题,而 PhantomJS 则存在最新二进制文件中缺少 .lib 文件的问题。使用WebDriverManager,我降级到PhantomJS 2.0,但等待http://localhost:29436/status超时。 。

  • 如果它确实“成功”导航到该网址(正如 Chrome 所说),则它无法找到该元素。这可能是由于第 1 点?
  • 如果 TestBench 无法处理 JSP 登录,那么它对我的应用程序将毫无用处。任何帮助是极大的赞赏。我可能做错了什么而导致了我的问题?

    最佳答案

    为此问题创建了一个简单的测试示例 https://github.com/rogozinds/testbenchexample

    您使用的 Testbench 版本是什么?您可以尝试不使用 ChromeDriverManager 来运行它,只需下载chromedriver https://sites.google.com/a/chromium.org/chromedriver/downloads并将其添加到您的系统路径中。

    getDriver().get(URL) - 至少应该打开一个新的 Chrome 窗口并导航到 URL。但据我了解,这并没有发生?

    P.S 我已经在没有 ChromeDriverManager 的 Testbench 5 中尝试了您的示例,并且它可以使用简单的 index.html 文件。

    关于java - TestBench无法打开浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42404971/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com