package net.thucydides.core.pages.integration; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.phantomjs.PhantomJSDriver; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; public class WaitingForElementsWithTheFluentElementAPI extends FluentElementAPITestsBaseClass { @Rule public ExpectedException expectedException = ExpectedException.none(); private static WebDriver phantomDriver; private static StaticSitePage phantomPage; @BeforeClass public static void openBrowsers() { phantomDriver = new PhantomJSDriver(); phantomPage = new StaticSitePage(phantomDriver, 1000); } @AfterClass public static void quitBrowsers() { if (phantomDriver != null) { phantomDriver.quit(); } } protected StaticSitePage getPhantomJSPage() { return phantomPage; } @Test public void should_obtain_text_value_from_input() { StaticSitePage page = getPhantomJSPage(); page.getDriver().navigate().refresh(); assertThat(page.element(page.firstName).getValue(), is("<enter first name>")); } @Test public void should_wait_for_element_to_be_visible_and_enabled_before_clicking() { StaticSitePage page = getPhantomJSPage(); page.open(); //page.getDriver().navigate().refresh(); page.element(page.checkbox).click(); } @Test public void should_be_able_to_build_composite_wait_until_disabled_clauses() throws InterruptedException { StaticSitePage page = getPhantomJSPage(); page.waitForCondition().until(page.twoFieldsAreDisabled()); } @Test public void should_wait_for_text_to_dissapear() { StaticSitePage page = getPhantomJSPage(); page.waitForTextToDisappear("Dissapearing text"); assertThat(page.containsText("Dissapearing text"), is(false)); } @Test public void contains_text_should_fail_if_text_is_not_present() { StaticSitePage page = getPhantomJSPage(); assertThat(page.containsText("Not present"), is(false)); } @Test public void contains_text_should_fail_if_text_is_invisible() { StaticSitePage page = getPhantomJSPage(); assertThat(page.containsText("Invisible text"), is(false)); } @Test public void should_wait_for_text_in_element_to_dissapear() { StaticSitePage page = getPhantomJSPage(); page.waitForTextToDisappear(page.dissapearingtext, "Dissapearing text"); assertThat(page.containsText("Dissapearing text"), is(false)); } @Test public void should_wait_for_field_to_be_enabled_using_alternative_style() throws InterruptedException { StaticSitePage page = getPhantomJSPage(); page.firstName().waitUntilVisible(); page.firstName().waitUntilEnabled(); } }