【问题标题】:Having issue finding element Fluentlenium在寻找元素 Fluentlenium 时遇到问题
【发布时间】:2015-05-18 13:52:40
【问题描述】:

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

【问题讨论】:

  • 能否提供CalendarPage的实现?你页面的 HTML 呢?您的模态窗口是否在 iframe 中?

标签: java selenium phantomjs fluentlenium


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多