Fluentlenium untilPage isAt功能

时间:2018-08-18 02:58:21

标签: selenium fluentlenium

我的目标

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

通过Fluent Docs:

  

“如果要等到所需页面就是您所在的页面,则可以使用”

我的设置:

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();
    }
}

此代码在完成后不会引发任何异常。此功能的目的是什么?即使isLoaded()已提供此功能,它是否还在等待document.readyState?

版本:
ent /硒3.0.0
Junit 4.12

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

1 个答案:

答案 0 :(得分:0)

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

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

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