使用机器人框架手动输入(验证码)?
Manual input (Captcha) with Robot Framework?
我正在使用 Robot Framework + Selenium2Library 编写 web 验收测试。关键是 Web 包含一些我无法自动化的输入字段 (CAPTCHA),并且我无法告诉我的供应商在 运行 测试时关闭此功能。所以我必须手动输入这个字段。现在我正在这样做:
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.
当我将 Robot Framework 告诉 Sleep 10
时,我已经输入了验证码,目前一切顺利。但是我想知道有没有告诉 Robot Framework 无限期等待,然后在我完成验证码输入后继续自动执行任务?
我可以看到几个选项:
您可以删除睡眠和按钮点击并自己完成。然后你可以使用等到页面包含在你按下提交按钮后继续
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
您还可以使用对话框库中的暂停执行关键字。这会暂停执行,直到您在弹出窗口中单击确定。
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.
我能想到的最自动化的方法是使用验证码解决服务。我相信他们有一个 API,您可以在其中发送页面的屏幕截图并获得已解决的验证码。我从未尝试过它们,分享您的软件的屏幕截图可能不是一种选择。
在 Robot Framework 附带的 Dialog 库中有 a keyword 就是为了这个目的。
Execute Manual Step Please complete the CAPTCHA portion of the form.
您也可以使用命令- get value from user
。
它打开弹出窗口并告诉用户插入文本值(例如在页面上输入验证码),当用户输入验证码值并单击确定时,该值将插入到验证码中 window并开始下一个操作。
代码是:
#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 Dialogs"
我正在使用 Robot Framework + Selenium2Library 编写 web 验收测试。关键是 Web 包含一些我无法自动化的输入字段 (CAPTCHA),并且我无法告诉我的供应商在 运行 测试时关闭此功能。所以我必须手动输入这个字段。现在我正在这样做:
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.
当我将 Robot Framework 告诉 Sleep 10
时,我已经输入了验证码,目前一切顺利。但是我想知道有没有告诉 Robot Framework 无限期等待,然后在我完成验证码输入后继续自动执行任务?
我可以看到几个选项:
您可以删除睡眠和按钮点击并自己完成。然后你可以使用等到页面包含在你按下提交按钮后继续
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
您还可以使用对话框库中的暂停执行关键字。这会暂停执行,直到您在弹出窗口中单击确定。
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.
我能想到的最自动化的方法是使用验证码解决服务。我相信他们有一个 API,您可以在其中发送页面的屏幕截图并获得已解决的验证码。我从未尝试过它们,分享您的软件的屏幕截图可能不是一种选择。
在 Robot Framework 附带的 Dialog 库中有 a keyword 就是为了这个目的。
Execute Manual Step Please complete the CAPTCHA portion of the form.
您也可以使用命令- get value from user
。
它打开弹出窗口并告诉用户插入文本值(例如在页面上输入验证码),当用户输入验证码值并单击确定时,该值将插入到验证码中 window并开始下一个操作。
代码是:
#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 Dialogs"