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
示例#3
0
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
示例#6
0
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
示例#7
0
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
示例#9
0
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
示例#10
0
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
示例#14
0
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