import pytest
from tests.support.asserts import assert_error, assert_success
def element_click(session, element):
return session.transport.send(
"POST", "session/{session_id}/element/{element_id}/click".format(
session_id=session.session_id,
element_id=element.id))
def test_display_none(session, inline):
session.url = inline("""""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_visibility_hidden(session, inline):
session.url = inline("""""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_hidden(session, inline):
session.url = inline("")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_disabled(session, inline):
session.url = inline("""""")
element = session.find.css("button", all=False)
response = element_click(session, element)
assert_success(response)
@pytest.mark.parametrize("transform", ["translate(-100px, -100px)", "rotate(50deg)"])
def test_element_not_interactable_css_transform(session, inline, transform):
session.url = inline("""
""".format(transform=transform))
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_element_not_interactable_out_of_view(session, inline):
session.url = inline("""
""")
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
@pytest.mark.parametrize("tag_name", ["div", "span"])
def test_zero_sized_element(session, inline, tag_name):
session.url = inline("<{0}>{0}>".format(tag_name))
element = session.find.css(tag_name, all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")
def test_element_intercepted(session, inline):
session.url = inline("""
""")
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "element click intercepted")
def test_element_intercepted_no_pointer_events(session, inline):
session.url = inline("""""")
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "element click intercepted")
def test_element_not_visible_overflow_hidden(session, inline):
session.url = inline("""
""")
element = session.find.css("input", all=False)
response = element_click(session, element)
assert_error(response, "element not interactable")