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
Другие вопросы по тегам