首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动输入(Captcha)与机器人框架?

手动输入(Captcha)与机器人框架?
EN

Stack Overflow用户
提问于 2016-03-30 08:56:40
回答 3查看 7.1K关注 0票数 3

我正在编写一个使用机器人框架+ Selenium2Library的web验收测试。关键是web包含一些我无法自动化的输入字段(CAPTCHA),并且我不能告诉我的供应商在运行测试时关闭这个特性。所以我必须手动输入这个字段。现在我要做的是:

代码语言:javascript
复制
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的输入之后继续自动化任务呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-30 14:40:30

机器人框架附带的对话框库中就有关键词

代码语言:javascript
复制
Execute Manual Step    Please complete the CAPTCHA portion of the form.
票数 4
EN

Stack Overflow用户

发布于 2016-03-30 09:40:26

我可以看到一些选择:

您可以删除睡眠和按钮点击,并做他们自己。然后,您可以在按下submit按钮后使用“等待直到页面包含”继续。

代码语言:javascript
复制
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

您还可以从对话框库中使用暂停执行关键字。这会暂停执行,直到在弹出窗口中单击“确定”。

代码语言:javascript
复制
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返回。我从来没有尝试过,分享你的软件屏幕截图可能不是一个选择。

票数 3
EN

Stack Overflow用户

发布于 2016-11-24 09:54:02

您还可以使用- get value from user命令。

它打开弹出并告诉用户插入文本值(如在页面中输入captcha ),当用户输入captcha值并单击ok时,该值将插入captcha窗口并开始下一个操作。

守则是:

代码语言:javascript
复制
    #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对话框“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36304070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档