【发布时间】: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 断言。但是,它无法找到元素。
我想我有两个问题。
- 浏览器无法打开/导航到 URL。如果 Chrome 已打开,则 Chrome 在运行测试时不会打开新标签页/页面。或者,如果我允许它启动浏览器,它不会打开页面(在 Mac OSX 上),所以我永远无法直观地确认它导航到 URL。
我尝试过使用 Firefox,显然 Selenium 存在很多问题,而 PhantomJS 则存在最新二进制文件中缺少 .lib 文件的问题。使用 WebDriverManager,我降级到 PhantomJS 2.0,但等待http://localhost:29436/status 超时。
- 如果它确实“成功”导航到 URL,正如 Chrome 所说的那样,它无法找到该元素。这可能是因为数字 1?
如果 TestBench 不能处理 JSP 登录,那么它将对我的应用程序毫无用处。任何帮助是极大的赞赏。我可能做错了什么导致了我的问题?
【问题讨论】:
标签: java macos jsp selenium vaadin