如何让我的脚本循环?

时间:2015-07-13 05:40:12

标签: ruby while-loop watir-webdriver webautomation

我有我的脚本登录并进入浏览器URL的地方,但是当它退出当前网页时它只是坐在那里并且不会重新启动循环。如何让循环实现完成并重新启动?

if (array[index]<min);

当脚本完成后,它只是坐在网页上......我正试图让它再次开始... 您会认为它需要每个名称,传递并返回到开头的URL。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

看起来您可能没有恰当地调用browser.close。在我的快速模拟测试中,如果我不这样做,我肯定会遇到奇怪的行为。您还使用了非惯用的Ruby循环。试试这个:

5.times do 
  File.open("yahoo_accounts.txt") do |email|
    email.each do |item|
      email, password = item.chomp.split(',')
      emails << email 
      passwords << password
      emails.zip(passwords) do |name, pass| 
        browser = Watir::Browser.new :ff
        browser.goto "url"

        #logs in and does what its suppose to do with the name and pass

        browser.close
      end
    end
  end
end

编辑:

或者,如果您希望完全相同的Watir::Browser实例执行所有工作,请在主循环外部初始化和关闭。现在,您每次迭代Browser生成一个新的emails.zip实例,每email.each次迭代次数,乘以while循环的5次迭代。这只是笨拙,可能会搞砸你的预期结果。所以只是这样做:

browser = Watir::Browser.new :ff
5.times do
  ... loop code ...
end
browser.close

至少会让发动机罩下的任何事情更清楚。