1

我正在使用 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);
            }
        });
    }

测试正在运行,并且似乎能够选择“创建”按钮,然后应该打开一个模式窗口,但由于某种原因,它在查看此模式上的 id 时遇到了问题。我得到的错误信息如下:

 org.openqa.selenium.NoSuchElementException: No element is displayed or enabled. Can't set a new value.

在访问模态窗口上的 id 时,有什么我没有做的吗?任何帮助都将不胜感激。

4

1 回答 1

0

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

FluentWaitMatcher 匹配器 = page.await().atMost(, TimeUnit.SECONDS).until(findPattern);

于 2015-08-18T05:44:17.687 回答