1from tests.support.asserts import assert_error, assert_success
2
3
4def get_element_text(session, element_id):
5    return session.transport.send(
6        "GET", "session/{session_id}/element/{element_id}/text".format(
7            session_id=session.session_id,
8            element_id=element_id))
9
10
11def test_no_top_browsing_context(session, closed_window):
12    original_handle, element = closed_window
13    response = get_element_text(session, element.id)
14    assert_error(response, "no such window")
15    response = get_element_text(session, "foo")
16    assert_error(response, "no such window")
17
18    session.window_handle = original_handle
19    response = get_element_text(session, element.id)
20    assert_error(response, "no such element")
21
22
23def test_no_browsing_context(session, closed_frame):
24    response = get_element_text(session, "foo")
25    assert_error(response, "no such window")
26
27
28def test_getting_text_of_a_non_existant_element_is_an_error(session, inline):
29    session.url = inline("""<body>Hello world</body>""")
30
31    result = get_element_text(session, "foo")
32    assert_error(result, "no such element")
33
34
35def test_read_element_text(session, inline):
36    session.url = inline("Before f<span id='id'>oo</span> after")
37    element = session.find.css("#id", all=False)
38
39    result = get_element_text(session, element.id)
40    assert_success(result, "oo")
41