diff --git a/py/selenium/webdriver/common/keys.py b/py/selenium/webdriver/common/keys.py index c2e7e6e822e48..6d358169dd68c 100644 --- a/py/selenium/webdriver/common/keys.py +++ b/py/selenium/webdriver/common/keys.py @@ -16,6 +16,8 @@ # under the License. """The Keys implementation.""" +import sys + class Keys: """Set of special keys codes.""" @@ -88,3 +90,5 @@ class Keys: META = "\ue03d" COMMAND = "\ue03d" ZENKAKU_HANKAKU = "\ue040" + + COMMAND_OR_CONTROL = COMMAND if sys.platform == "darwin" else CONTROL diff --git a/py/test/selenium/webdriver/common/typing_tests.py b/py/test/selenium/webdriver/common/typing_tests.py index 57e254fe902c1..60bf1b47a6aac 100644 --- a/py/test/selenium/webdriver/common/typing_tests.py +++ b/py/test/selenium/webdriver/common/typing_tests.py @@ -346,3 +346,13 @@ def test_should_type_an_integer(driver, pages): element = driver.find_element(by=By.ID, value="keyReporter") element.send_keys(1234) assert element.get_attribute("value") == "1234" + + +def test_should_type_ctrl_or_command_based_on_os(driver, pages): + pages.load("javascriptPage.html") + element = driver.find_element(by=By.ID, value="keyReporter") + element.send_keys(1234) + assert element.get_attribute("value") == "1234" + element.send_keys(Keys.COMMAND_OR_CONTROL + "a") + element.send_keys(Keys.BACKSPACE) + assert element.get_attribute("value") == ""