def test_click_waits_for_no_overlay(session_browser): browser = session_browser.with_(timeout=0.5) page = GivenPage(browser.driver) page.opened_with_body(''' <a href="#second">go to Heading 2</a> <h2 id="second">Heading 2</h2> <div> id=overlay, style="display: block; background-color: rgba(0, 0, 0, 0.336), position: fixed, height: 100%, width: 100%, top: 0, left: 0, z-index: 1000" </div> ''') page.execute_script_with_timeout( ''' document.getElementById('overlay').style.display=none ''', 250, ) browser.element('a').click() assert "second" in browser.driver.current_url
def test_type_waits_for_visibility(session_browser): browser = session_browser.with_(timeout=1).with_( wait_for_no_overlap_found_by_js=True ) page = GivenPage(browser.driver) page.opened_with_body( ''' <input id="text-field" value="before" style="display: none"> </input> ''' ) time_before = time.time() page.execute_script_with_timeout( ''' document.getElementById('text-field').style.display='block' ''', 0.25, ) browser.element('#text-field').type(' after') time_spent = time.time() - time_before assert time_spent >= 0.25 browser.element('#text-field').should(have.value('before after'))
def test_click_waits_for_no_overlay(session_browser): browser = session_browser.with_(timeout=0.5) page = GivenPage(browser.driver) page.opened_with_body( ''' <div id="overlay" style= ' display:block; position: fixed; display: block; width: 100%; height: 100%; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.1); z-index: 2; cursor: pointer; ' > </div> <a href="#second">go to Heading 2</a> <h2 id="second">Heading 2</h2> ''' ) before_call = time.time() page.execute_script_with_timeout( ''' document.getElementById('overlay').style.display='none' ''', 250, ) browser.element('a').click() time_diff = time.time() - before_call assert 0.25 < time_diff < 0.5 assert "second" in browser.driver.current_url