Skip to content

Commit b8ad456

Browse files
Kyle McGonagleAutomatedTester
authored andcommitted
Added EventFiringWebDriver to type check in pointer_input.py and tests for pointer and key input with EventFiringWebDriver.
Fixes #6604
1 parent 3eeb405 commit b8ad456

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

py/selenium/webdriver/common/actions/pointer_input.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from selenium.common.exceptions import InvalidArgumentException
2121
from selenium.webdriver.remote.webelement import WebElement
22+
from selenium.webdriver.support.event_firing_webdriver import EventFiringWebElement
2223

2324

2425
class PointerInput(InputDevice):
@@ -37,7 +38,7 @@ def create_pointer_move(self, duration=DEFAULT_MOVE_DURATION, x=None, y=None, or
3738
action = dict(type="pointerMove", duration=duration)
3839
action["x"] = x
3940
action["y"] = y
40-
if isinstance(origin, WebElement):
41+
if isinstance(origin, (WebElement, EventFiringWebElement)):
4142
action["origin"] = {"element-6066-11e4-a52e-4f735466cecf": origin.id}
4243
elif origin is not None:
4344
action["origin"] = origin

py/test/selenium/webdriver/support/event_firing_webdriver_tests.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from selenium.webdriver.common.by import By
2727
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
2828
from selenium.webdriver.support.ui import WebDriverWait
29+
from selenium.webdriver.common.actions.action_builder import ActionBuilder
2930

3031

3132
@pytest.fixture
@@ -216,3 +217,30 @@ def test_missing_attributes_raise_error(driver, pages):
216217

217218
with pytest.raises(AttributeError):
218219
element.attribute_should_not_exist
220+
221+
222+
def test_can_use_pointer_input_with_event_firing_webdriver(driver, pages):
223+
ef_driver = EventFiringWebDriver(driver, AbstractEventListener())
224+
pages.load("javascriptPage.html")
225+
to_click = ef_driver.find_element_by_id("clickField")
226+
227+
actions = ActionBuilder(ef_driver)
228+
pointer = actions.pointer_action
229+
pointer.move_to(to_click).click()
230+
actions.perform()
231+
232+
assert to_click.get_attribute('value') == 'Clicked'
233+
234+
235+
def test_can_use_key_input_with_event_firing_webdriver(driver, pages):
236+
ef_driver = EventFiringWebDriver(driver, AbstractEventListener())
237+
pages.load("javascriptPage.html")
238+
keyUp = ef_driver.find_element_by_id("keyUp").click()
239+
240+
actions = ActionBuilder(ef_driver)
241+
key = actions.key_action
242+
key.send_keys('Success')
243+
actions.perform()
244+
245+
result = ef_driver.find_element_by_id("result")
246+
assert result.text == 'Success'

0 commit comments

Comments
 (0)