0

我的目标

我的直觉是 Fluentlenium untilPage(myPage).isAt()用于根据匹配的 URL 断言我是否已到达页面。尽管无论页面是否到达我的页面,它似乎都会返回 true。我想我只是误解了这个功能的目的。

来自流利的文档:

“如果你想等到你想要的页面是你所在的页面,你可以使用”

我的设置:

import org.fluentlenium.adapter.junit.FluentTest;
import org.fluentlenium.core.FluentPage;
import org.fluentlenium.core.annotation.Page;
import org.fluentlenium.core.annotation.PageUrl;
import org.junit.Test;

@PageUrl("http://www.google.com")
class GPage extends FluentPage {
}

@PageUrl("www.fakepage.com")
class FPage extends FluentPage{

}

public class Duh extends FluentTest {

    @Page
    GPage google;
    @Page
    FPage fakePage;


    @Test
    public void test() {
        goTo(google);
        await().atMost(1).untilPage(fakePage).isAt();
    }
}

此代码在完成后不会抛出任何异常。这个功能的用途是什么?它是否只是在等待 document.readyState,即使 isLoaded() 已经提供了此功能?

版本:
Fluentlenium/Selenium 3.0.0
Junit 4.12

PS:我知道这可以使用Selenium。我只是在询问这个特定功能的目的是什么。

4

1 回答 1

0

@code_disciple1 isAt 方法旨在用于简单和更复杂的断言。等待 document.readyState 并不适用于所有情况。有时您想使用多个条件检查您是否在正确的页面,例如。等待特定元素、特定 URL 或您要运行的任何其他检查。例如。在我当前的项目中,我们检查当前页面是否有特定的 URL。

实际上,您可以使用 Selenium 编写这样的方法,但 FluentLenium 提供了简单的开箱即用机制来断言此类情况。

此外,如果您认为此功能存在错误,请在我们的 GitHub https://github.com/FluentLenium/FluentLenium/issues上报告。

于 2018-09-06T19:37:25.033 回答