【问题标题】:TestBench fails to open browserTestBench 无法打开浏览器
【发布时间】:2017-07-13 07:09:20
【问题描述】:

我正在尝试使用 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 断言。但是,它无法找到元素。

我想我有两个问题。

  1. 浏览器无法打开/导航到 URL。如果 Chrome 已打开,则 Chrome 在运行测试时不会打开新标签页/页面。或者,如果我允许它启动浏览器,它不会打开页面(在 Mac OSX 上),所以我永远无法直观地确认它导航到 URL。

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

  1. 如果它确实“成功”导航到 URL,正如 Chrome 所说的那样,它无法找到该元素。这可能是因为数字 1?

如果 TestBench 不能处理 JSP 登录,那么它将对我的应用程序毫无用处。任何帮助是极大的赞赏。我可能做错了什么导致了我的问题?

【问题讨论】:

    标签: java macos jsp selenium vaadin


    【解决方案1】:

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

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

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

    P.S 我已经用没有 ChromeDriverManager 和简单 index.html 文件的 Testbench 5 尝试了你的示例。

    【讨论】:

    • 请在评论区提问。
    • 我更新到 4.2 并且使用 geckodriver 的 Firefox 将打开但不会导航到 URL。它曾经有“数据。”在地址栏中,这很奇怪。 Chrome 使用正确的 Url 打开一次并加载了 jsp 登录页面。还不能复制。
    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2019-11-27
    • 2018-02-01
    • 2020-09-01
    • 2017-02-27
    相关资源
    最近更新 更多