2016-03-30 2 views
3

Я пишу приемочный тест для Интернета с использованием Robot Framework + Selenium2Library. Дело в том, что в сети есть какое-то поле ввода, которое я не могу автоматизировать (CAPTCHA), и я не могу сказать моему поставщику отключить эту функцию во время запуска теста. Поэтому я должен ввести это поле вручную. Теперь я делаю это:Ручной ввод (Captcha) с помощью Robot Framework?

Create User 
    [Arguments]   ${username} ${password} 
    Open Browser   ${URL}   ${BROWSER} 
    Input Text    username  ${username} 
    Input Text    password  ${password} 
    Sleep     10    # XXX input CAPTCHA manually here! 
    Click Button   submit 
    Page Should Contain ${username} has been created. 

Я ввода CAPTCHA, когда я говорю Robot Framework для Sleep 10, до сих пор так хорошо. Но мне интересно, так или иначе, чтобы сказать Robot Framework ждать бесконечно, а затем продолжить автоматизацию задачи после того, как я закончу ввод этого CAPTCHA?

+0

Вы могли бы сказать ему, чтобы ждать, пока любое количество вариантов, прежде чем продолжить. Например, ввод некоторого случайного текста в поле, которое необязательно или не требуется. Если бы это был я, я бы, вероятно, изменил порядок, так что в начале теста вы заполните капчу, а затем заставьте его подождать, пока вы не поместите фокус в поле имени пользователя, и продолжите ли он оттуда – shicky

ответ

2

Для этой цели есть a keyword в библиотеке Dialog, которая поставляется с Robot Framework.

Execute Manual Step Please complete the CAPTCHA portion of the form. 
+0

не добавьте никакого представления об этом ключевое слово, спасибо @ ombre42 – shicky

3

Я вижу несколько вариантов:

Вы можете удалить сон и кнопку мыши и сделать их самостоятельно. Затем вы можете использовать подождать, пока страница не содержит, чтобы продолжить после того, как вы подтолкнули кнопку

Create User 
    [Arguments]     ${username} ${password} 
    Open Browser    ${URL}   ${BROWSER} 
    Input Text     username  ${username} 
    Input Text     password  ${password} 
    Log       Waiting for CAPTCHA 
    Wait Until Page Contains ${username} has been created. timeout=3600 

представить также можно использовать приостановить выполнение ключевого слово из Диалоги-библиотеки. Это приостанавливает выполнение, пока вы не нажмете OK во всплывающем окне.

Create User 
    [Arguments]     ${username} ${password} 
    Open Browser    ${URL}   ${BROWSER} 
    Input Text     username  ${username} 
    Input Text     password  ${password} 
    Pause Execution    Enter captcha 
    Click Button    submit 
    Page Should Contain   ${username} has been created. 

Самый автоматический способ, который я могу придумать, - использовать службу решения CAPTCHA. Я считаю, что у них есть API, где вы отправляете скриншот своей страницы и получаете разрешенный CAPTCHA. Я никогда не пробовал их, и совместное использование снимков экрана вашего программного обеспечения может быть не вариантом.

0

Вы также можете использовать команду get value from user.

Он открывает всплывающее окно и указывает пользователю ввести текстовое значение (например, введите captcha, находящееся на странице), когда пользователь вводит значение captcha и нажимает ok, тогда это значение вставляется в окно штриховки и начинается следующая операция.

Кодекс:

#Use  Library Dialogs 
    open browser  http://sitename  ff 
    input text id=name-id anytext 
    ${Captcha} = get value from user Enter Captcha none none 
    input text id=captcha-id ${Captcha} 
    click element id=submit-id 

Примечание: Используйте «Libray Диалоги» первоначально

 Смежные вопросы

  • Нет связанных вопросов^_^