def test_waits_nothing(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.all('li').filtered_by( have.css_class('will-appear')) page.load_body(''' <ul>Hello to: <li>Anonymous</li> <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> </ul>''') assert len(elements) == 2 page.load_body_with_timeout( ''' <ul>Hello to: <li>Anonymous</li> <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> <li class='will-appear'>Joe</li> </ul>''', 500, ) assert len(elements) == 2
def test_search_is_updated_on_next_actual_action_like_questioning_count( session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.all('li').filtered_by( have.css_class('will-appear')) page.load_body(''' <ul>Hello to: <li>Anonymous</li> <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> </ul>''') assert len(elements) == 2 page.load_body(''' <ul>Hello to: <li>Anonymous</li> <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> <li class='will-appear'>Joe</li> </ul>''') assert len(elements) == 3
def test_search_is_updated_on_next_actual_action_like_questioning_count( session_browser, ): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.element('ul').all('.will-appear') page.load_body( ''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> </ul> ''' ) original_count = len(elements) page.load_body( ''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> <li class='will-appear'>Joe</li> </ul> ''' ) updated_count = len(elements) assert updated_count == 3 assert updated_count != original_count
def test_search_is_updated_on_next_actual_action_like_questioning_displayed( session_browser, ): page = GivenPage(session_browser.driver) page.opened_empty() element = session_browser.all('.will-appear').element_by( have.css_class('special') ) page.load_body( ''' <ul>Hello to: <li class="will-appear">Bob</li> <li class="will-appear special">Kate</li> </ul>''' ) assert element().is_displayed() is True page.load_body( ''' <ul>Hello to: <li class="will-appear">Bob</li> <li class="will-appear special" style="display:none">Kate</li> </ul>''' ) assert element().is_displayed() is False
def test_search_is_postponed_until_actual_action_like_questioning_displayed( session_browser): page = GivenPage(session_browser.driver) page.opened_empty() element = session_browser.element('#will-be-existing-element-id') page.load_body('<h1 id="will-be-existing-element-id">Hello kitty:*</h1>') assert element().is_displayed() is True
def test_search_is_postponed_until_actual_action_like_questioning_count( session_browser, ): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.all('.will-appear') page.load_body(''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> </ul>''') assert len(elements) == 2
def test_counts_invisible_tasks(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.all('.will-appear') page.load_body(''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> </ul>''') assert len(elements) == 2
def test_searches_exactly_inside_parent(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.element('ul').all('.will-appear') page.load_body(''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear'>Kate</li> </ul> <li class='forgotten'>Joe</li>''') assert len(elements) == 2
def test_search_is_updated_on_next_actual_action_like_questioning_displayed( session_browser, ): page = GivenPage(session_browser.driver) page.opened_empty() element = session_browser.element('#will-be-existing-element-id') page.load_body('<h1 id="will-be-existing-element-id">Hello kitty:*</h1>') assert element().is_displayed() is True page.load_body( '<h1 id="will-be-existing-element-id" style="display:none">Hello kitty:*</h1>' ) assert element().is_displayed() is False
def test_search_is_postponed_until_actual_action_like_questioning_displayed( session_browser): element = (session_browser.element('#will-be-existing-element').element( '.will-exist-inner')) page = GivenPage(session_browser.driver) page.opened_empty() page.load_body(''' <h1 id="will-be-existing-element"> <span class="will-exist-inner">Hello</span> kitty:* </h1>''') answer = element().is_displayed() assert answer is True
def test_search_is_postponed_until_actual_action_like_questioning_displayed( session_browser): page = GivenPage(session_browser.driver) page.opened_empty() element = session_browser.all('.will-appear')[1] page.load_body(''' <ul>Hello to: <li class="will-appear">Bob</li> <li class="will-appear">Kate</li> </ul>''') assert element().is_displayed() is True
def test_counts_invisible_tasks(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.all('li').filtered_by( have.css_class('will-appear') ) page.load_body( ''' <ul>Hello to: <li>Anonymous</li> <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> </ul> ''' ) count = len(elements) assert count == 2
def test_waits_for_parent_in_dom_then_visible(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.element('#will-appear').all('.item') page.load_body(''' <li class='item'>Bob</li> <li class='item' style='display:none'>Kate</li>''') page.load_body_with_timeout( ''' <ul id='will-appear' style="display:none">Hello to: <li class='item'>Bob</li> <li class='item' style='display:none'>Kate</li> </ul>''', 0.25, ).execute_script_with_timeout( 'document.getElementsByTagName("ul")[0].style = "display:block";', 0.5) assert len(elements) == 2
def test_search_is_updated_on_next_actual_action_like_questioning_displayed( session_browser): element = (session_browser.element('#will-be-existing-element').element( '.will-exist-inner')) page = GivenPage(session_browser.driver) page.opened_with_body(''' <h1 id="will-be-existing-element"> <span class="will-exist-inner">Hello</span> kitty:* </h1> ''') assert element().is_displayed() is True page.load_body(''' <h1 id="will-be-existing-element"> <span class="will-exist-inner" style="display:none"> Hello </span> kitty:* </h1>''') new_answer = element().is_displayed() assert new_answer is False
def test_does_not_wait_inner(session_browser): page = GivenPage(session_browser.driver) page.opened_empty() elements = session_browser.element('ul').all('.will-appear') page.load_body(''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> </ul>''') assert len(elements) == 2 page.load_body_with_timeout( ''' <ul>Hello to: <li class='will-appear'>Bob</li> <li class='will-appear' style='display:none'>Kate</li> <li class='will-appear'>Joe</li> </ul>''', 500) assert len(elements) == 2