有问题发现元素Fluentlenium

时间:2015-05-18 13:52:40

标签: java selenium phantomjs fluentlenium

我正在使用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时,有什么我没做的吗?任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

通常,模态窗口需要一些时间才能附加到您正在访问的页面的DOM。虽然您已经添加了3秒钟来等待元素显示/附加到DOM,但时间不够。我不建议增加超时但建议等到元素出现然后继续前进。例如您可以执行以下操作来等待元素显示在页面上而不是静态等待:

FluentWaitMatcher matcher = page.await()。atMost(,TimeUnit.SECONDS).until(findPattern);