我需要能够使用我的 Hudson 构建运行我的 Ruby 脚本,但不希望浏览器窗口试图打开。我试过了:
batman:ETW cmiller$ ./createAccount.rb -b
但这没有用。
如何使用 FireWatir 无头运行我的 Ruby 脚本?
在 Mac OS X 上运行
我需要能够使用我的 Hudson 构建运行我的 Ruby 脚本,但不希望浏览器窗口试图打开。我试过了:
batman:ETW cmiller$ ./createAccount.rb -b
但这没有用。
如何使用 FireWatir 无头运行我的 Ruby 脚本?
在 Mac OS X 上运行
我建议使用 PhantomJS ( http://phantomjs.org/download.html ) 将二进制文件添加到您的路径并运行:
MEDBEDbs-iMac:~ medbedb$ irb
1.9.3p392 :001 > require 'watir-webdriver'
=> true
1.9.3p392 :002 > b = Watir::Browser.new :phantomjs
=> #<Watir::Browser:0x..fe670a70a449fe1ca url="about:blank" title="">
1.9.3p392 :003 > b.goto "www.google.com"
=> "http://www.google.md/"
1.9.3p392 :004 > b.url
=> "http://www.google.md/"
1.9.3p392 :005 > b.title
=> "Google"
1.9.3p392 :007 > b.text
=> "+Вы\nПоиск\nКартинки\nКарты\nPlay\nПочта\nДиск\nКалендарь\nЕщё\nВойти\n×\nОткрывай любимые сайты быстрее\nЗагрузить Google Chrome\n\nМолдoва\n\n \nРасширенный поиск\nЯзыковые инструменты\n\nGoogle.md предлагается на: Moldovenească\n\nРекламные программыВсё о GoogleGoogle.com\n© 2013 - Правила и принципы"
看看http://watirmelon.com/tag/headless/。我在适用于我的 Linux 上关注了http://watirwebdriver.com/headless/ 。在上面的链接中,该教程适用于 Mac
这是链接的摘录,如何使用无头浏览器:
require 'watir-webdriver'
require 'headless'
现在开始无头和浏览器
headless = Headless.new
headless.start
b = Watir::Browser.start 'www.google.com' puts b.title
b.close headless.destroy
您的浏览器应该无头运行。
我会考虑使用 Watir-Webdriver 而不是普通的 Watir 或 Fire-watir。特别是因为使用新版本的 firefox 的唯一方法是通过 Watir-Webdriver。
有一个较早的 SO 问题,其中答案仅涵盖这类事情,所以我建议先尝试那里描述的内容。 我可以在没有监视器的情况下使用 Watir 从 linux 服务器上的网站抓取数据吗?
另外,由于我现在知道您使用的是 Mac OS,因此来自 webdriver google 组的此线程中的建议可能更适用于您
浏览器打开窗口是其正常操作和行为的一部分。
您可以考虑使用Mechanize,它提供了导航站点的能力。它不是一个浏览器,而是在下面使用 Nokogiri 来让您获取 DOM 信息并操作表单、提交它们并检索任何结果页面更改。Mechanize 不支持解析/执行 Javascript,这会让你回到 WATIR 的领域。