我正在编写一个使用机器人框架+ 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.当我把机器人框架告诉Sleep 10时,我已经输入了验证码,到目前为止还不错。但是我想知道是否有一种方法可以让机器人框架无限期地等待,然后在我完成CAPTCHA的输入之后继续自动化任务呢?
发布于 2016-03-30 14:40:30
机器人框架附带的对话框库中就有关键词。
Execute Manual Step Please complete the CAPTCHA portion of the form.发布于 2016-03-30 09:40:26
我可以看到一些选择:
您可以删除睡眠和按钮点击,并做他们自己。然后,您可以在按下submit按钮后使用“等待直到页面包含”继续。
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.我能想到的最自动化的方法是使用CAPTCHA解决服务。我相信他们有一个API,你在那里发送你的网页截图,并得到一个解决的CAPTCHA返回。我从来没有尝试过,分享你的软件屏幕截图可能不是一个选择。
发布于 2016-11-24 09:54:02
您还可以使用- get value from user命令。
它打开弹出并告诉用户插入文本值(如在页面中输入captcha ),当用户输入captcha值并单击ok时,该值将插入captcha窗口并开始下一个操作。
守则是:
#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对话框“
https://stackoverflow.com/questions/36304070
复制相似问题