Exemple #1
0
def test_fails_on_timeout_when_waiting_parent_in_dom_then_visible_then_inner_in_dom_then_visible(
    session_browser,
):
    browser = session_browser.with_(timeout=0.25)
    page = GivenPage(browser.driver)
    page.opened_empty()
    page.load_body_with_timeout(
        '''
        <p style="display:none">
            <h2 id="second">Heading 2</h2>
        </p>''',
        250,
    ).execute_script_with_timeout(
        'document.getElementsByTagName("p")[0].style = "display:block";', 500
    )
    page.load_body_with_timeout(
        '''
        <p>
            <a href="#second" style="display:none">go to Heading 2</a>
            <h2 id="second">Heading 2</h2>
        </p>''',
        750,
    ).execute_script_with_timeout(
        'document.getElementsByTagName("a")[0].style = "display:block";', 1000
    )

    with pytest.raises(TimeoutException):
        browser.element('p').element('a').click()

    assert "second" not in browser.driver.current_url
Exemple #2
0
def test_waits_first_for_parent_in_dom_then_inner_in_dom_then_visibility(
    session_browser,
):
    page = GivenPage(session_browser.driver)
    page.opened_empty()
    page.load_body_with_timeout(
        '''
        <p>
            <h2 id="second">Heading 2</h2>
        </p>''',
        250,
    )
    page.load_body_with_timeout(
        '''
        <p>
            <a href="#second" style="display:none">go to Heading 2</a>
            <h2 id="second">Heading 2</h2>
        </p>''',
        500,
    ).execute_script_with_timeout(
        'document.getElementsByTagName("a")[0].style = "display:block";', 750
    )

    session_browser.element('p').element('a').click()

    assert "second" in session_browser.driver.current_url
def test_fails_on_timeout_during_waits_first_for_present_in_dom_then_visibility(
    session_browser,
):
    browser = session_browser.with_(timeout=0.25)
    page = GivenPage(browser.driver)
    page.opened_with_body(
        '''
        <h2 id="second">Heading 2</h2>
        '''
    )
    page.load_body_with_timeout(
        '''
        <a href="#second" style="display:none">go to Heading 2</a>
        <h2 id="second">Heading 2</h2>
        ''',
        0.25,
    ).execute_script_with_timeout(
        'document.getElementsByTagName("a")[0].style = "display:block";', 0.5
    )
    element = browser.element("a")

    with pytest.raises(TimeoutException):
        element.click()

    assert "second" not in session_browser.driver.current_url
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_waits_for_present_in_dom_and_visibility(session_browser):
    page = GivenPage(session_browser.driver)
    page.opened_with_body('''
        <h2 id="second">Heading 2</h2>''')
    page.load_body_with_timeout(
        '''
        <a href="#second">go to Heading 2</a>
        <h2 id="second">Heading 2</h2>''', 500)

    session_browser.all('a')[0].click()
    assert "second" in session_browser.driver.current_url
def test_fails_on_timeout_during_waits_for_present_in_dom_and_visibility(
        session_browser):
    browser = session_browser.with_(timeout=0.25)
    page = GivenPage(browser.driver)
    page.opened_with_body('''
        <h2 id="second">Heading 2</h2>''')
    page.load_body_with_timeout(
        '''
        <a href="#second">go to Heading 2</a>
        <h2 id="second">Heading 2</h2>''', 500)

    with pytest.raises(TimeoutException):
        browser.all('a').element_by(have.exact_text('go to Heading 2')).click()

    assert "second" not in session_browser.driver.current_url
def test_waits_first_for_present_in_dom_then_visibility(session_browser):
    page = GivenPage(session_browser.driver)
    page.opened_with_body('''
        <h2 id="second">Heading 2</h2>''')
    page.load_body_with_timeout(
        '''
        <a href="#second" style="display:none">go to Heading 2</a>
        <h2 id="second">Heading 2</h2>''',
        0.25,
    ).execute_script_with_timeout(
        'document.getElementsByTagName("a")[0].style = "display:block";', 0.5)

    session_browser.all('a')[0].click()

    assert "second" in session_browser.driver.current_url
def test_waits_for_inner_presence_in_dom_and_visibility(session_browser):
    page = GivenPage(session_browser.driver)
    page.opened_with_body('''
        <p>
             <h2 id="second">Heading 2</h2>
        </p>''')
    page.load_body_with_timeout(
        '''
        <p>
            <a href="#second">go to Heading 2</a>
            <h2 id="second">Heading 2</h2>
        </p>''', 250)

    session_browser.element('p').element('a').click()

    assert "second" in session_browser.driver.current_url
Exemple #9
0
def test_waits_for_present_in_dom_and_visibility(session_browser):
    page = GivenPage(session_browser.driver)
    page.opened_with_body(
        '''
        <h2 id="second">Heading 2</h2>'''
    )
    page.load_body_with_timeout(
        '''
        <a href="#second">go to Heading 2</a>
        <h2 id="second">Heading 2</h2>''',
        0.5,
    )

    element = session_browser.all('a').element_by(
        have.exact_text('go to Heading 2')
    )
    element.click()

    assert "second" in session_browser.driver.current_url
def test_fails_on_timeout_during_waiting_for_inner_in_dom_and_visibility(
        session_browser):
    browser = session_browser.with_(timeout=0.1)
    page = GivenPage(browser.driver)
    page.opened_with_body('''
        <p>
             <h2 id="second">Heading 2</h2>
        </p>''')
    page.load_body_with_timeout(
        '''
        <p>
            <a href="#second">go to Heading 2</a>
            <h2 id="second">Heading 2</h2>
        </p>''', 250)

    with pytest.raises(TimeoutException):
        browser.element('p').element('a').click()

    assert "second" not in browser.driver.current_url
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_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