我正在使用Fluentlenium和PhantomJS编写一些自动化测试。我无法访问id"#title"。我写的测试如下:
@Test
public void testCreateButton() {
startAppWithCallback(new F.Callback<TestBrowser>() {
public void invoke(TestBrowser browser) throws InterruptedException {
CalendarPage calendarPage = browser.createPage(CalendarPage.class);
calendarPage.withDefaultUrl(BASE_URL);
calendarPage.go();
calendarPage.selectCreateButton();
calendarPage.typeTitle("Java Fundamentals");
browser.await().atMost(3, TimeUnit.SECONDS);
}
});
}
测试正在运行,似乎可以选择Create按钮,然后打开一个模态窗口,但由于某种原因,它在查看此模式上的id时遇到问题。我得到的错误消息如下:
org.openqa.selenium.NoSuchElementException: No element is displayed or enabled. Can't set a new value.
在访问模态窗口上的id时,有什么我没做的吗?任何帮助都会非常感激。
答案 0 :(得分:0)
通常,模态窗口需要一些时间才能附加到您正在访问的页面的DOM。虽然您已经添加了3秒钟来等待元素显示/附加到DOM,但时间不够。我不建议增加超时但建议等到元素出现然后继续前进。例如您可以执行以下操作来等待元素显示在页面上而不是静态等待:
FluentWaitMatcher matcher = page.await()。atMost(,TimeUnit.SECONDS).until(findPattern);