Robot Framework нажатием клавиши CapsLock
Я использую Robot Framework selenium2library для автоматизации приложений Chromium Embedded. Требуется проверить, отображается ли в окне всплывающая подсказка, если включена кнопка Caps Lock.
Press Key #element_id \\\20
Я использую приведенный выше код для включения ключа Caps Lock, имеющего 20 в качестве ASCII-кода для ключа Caps Lock. Но приведенный выше код не работает. Тот же синтаксис работает для клавиши Enter (значение ASCII 13) и клавиши Tab (значение ASCII 09), как показано ниже.
Press Key #element_id \\\13
Press Key #element_id \\\09
Может кто-нибудь, пожалуйста, помогите мне добиться нажатия клавиши Caps Lock с помощью Robot Framework.
2 ответа
Короткий ответ: это не поддерживается. Поддержка не буквенных ключей ограничена теми, которые указаны в модуле Selenium. В Webdriver/Common/Keys.py находятся все поддерживаемые ключи. Здесь вы найдете поддержку для tab
а также enter
ключи. Ключ Caps не входит в их число.
При поиске на странице проблемы SeleniumHQ по этому поводу есть одна ссылка: добавьте функцию отправки CAPSLOCK в webdriver. # 785. Здесь указано следующее:
Это выходит за рамки рассмотрения.
К сожалению, не все компьютеры поставляются с блокировкой колпачка, так что закрывайте это, так как есть обходной путь с удержанием переключения
Это не означает, что это невозможно, но только то, что это не поддерживается Selenium и его производной SeleniumLibrary. Чтобы нажать эту клавишу во время сеанса тестирования, необходимо загрузить специальный модуль Python для ОС, и он нажимает эту клавишу для вас. Для Windows функциональность Microsoft SendKeys может сделать это. В этом ответе о переполнении стека вы можете найти более подробную информацию о том, как использовать этот подход для Windows и Linux.
Спасибо всем, кто искал решение проблемы.
Найденное рабочее решение с использованием ImageHorizonLibrary доступно ниже
https://github.com/Eficode/robotframework-imagehorizonlibrary https://github.com/Eficode/robotframework-imagehorizonlibrary/blob/master/tests/atest/windows_tests.robot
Мой рабочий код с использованием вышеуказанной библиотеки:
Library ImageHorizonLibrary
*** Keywords ***
CheckCapsLockOnNotification
Press Key ${UsernameTextElement} \\09 #For Tab key
Type Key.CAPSLOCK #For CapsLock Key
Type pass #Typing keyboard letters
Page Should Contain Element ${CapsLockOnTooltipElement}
Clear Element Text ${PasswordTextElement}
Type Key.CAPSLOCK