【问题标题】:Ruby/Selenium WebDriver - Pausing test and waiting for user input, i.e. user inputs captchaRuby/Selenium WebDriver - 暂停测试并等待用户输入,即用户输入验证码
【发布时间】:2012-10-30 23:05:04
【问题描述】:

我正在使用 Selenium WebDriver 和 Ruby 执行一些自动化操作,但在 5 步流程的第 3 步附近遇到了验证码问题。

我将所有自动化都放入 rake 脚本中,所以我想知道是否有一个命令可以暂停或中断暂时运行的脚本,直到我将数据输入验证码,然后在下一页继续运行。

【问题讨论】:

    标签: ruby selenium captcha selenium-webdriver


    【解决方案1】:

    以 seleniumnewbie 的回答为基础,并假设您可以访问运行脚本的控制台:

    print "Enter Captcha"
    captchaTxt = gets.chomp
    yourCaptchaInputWebdriverElement.send_keys captchaTxt
    

    如果您只是想暂停并在浏览器中输入验证码,您可以让它在控制台上提示执行该操作,然后它就会坐在那里。

    print "Enter the captcha in your browser"
    gets
    

    您还可以将隐式等待设置为相当长的时间,以便 Selenium 自动查看下一页并移出。但是,这将使重要的验证码步骤(用于记录/处理)退出您的测试,除非您对您的评论非常敏感。

    由于这是一个需要用户输入的积极参与测试,我想说让测试人员在控制台上按“输入”是可行的方法。

    【讨论】:

      【解决方案2】:

      由于您是在脚本中编写测试,因此您只需在测试中添加一个睡眠,例如“sleep 100”。

      但是,在测试中添加任意睡眠是不好的。您还可以执行类似“等待标题 'foo'”的操作,其中 'foo' 是第 4 步中页面的标题。它不必是标题,它可以是任何东西,但你明白了。等待语义表明步骤 3 已完成,步骤 4 已准备好开始。

      这样,等待更有针对性。

      【讨论】:

        【解决方案3】:

        这已在 JAVA 中实现,但技术类似。您的解决方案可以在 here 找到

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多