2012-08-28 55 views
1

我需要做一个自动化的脚本来填充两个文本字段并点击网页上的一个按钮,并将所有生成的文本存储到一个字符串变量中。自动浏览器没有实际的浏览器窗口?

我知道如何用Watir来做到这一点,但问题是这个脚本将在Windows服务器上运行(没有附加物理监视器)。因此,这需要某种“模拟浏览器”,没有实际的浏览器窗口...我从来没有做过这样的事情,但谷歌搜索后,我认为,Ruby的宝石“机械化”或“水豚”可能能够做的伎俩。

但是因为我没有与任何水豚或mehcanize任何经验,我问这里有一点帮助......

这里是我想要做的,写的Watir代码。如果有人能告诉我如何用“机械化”或“水豚”来做同样的事情,我会非常感激。或者,如果有一些其他的方式做到这一点,所有建议都欢迎:

require "watir" 
ie = Watir::Browser.new 
ie.goto "http://www.vero.fi/vere/Tarkistus/VeronumeronTarkistus.aspx/" 
ie.text_field(:id, "tbNimi").set "John Smith" 
ie.text_field(:id, "tbVerotunnus").set "123456789012" 
ie.button(:id, "btnHae").click 
info = ie.text 
+0

为什么'没有附加显示器'意味着你不能使用浏览器驱动程序?在持续集成环境中运行这样的测试是非常常见的(例如,在无头服务器上) –

+0

现在我想到了,它应该是可能的(正常的Windows计算机不需要物理监视器来运行任何应用程序...)服务器维护人员(不是我)只是说,“没有桌面,所以任何窗口应用程序都不会工作”......也许他错了,我不得不与他讨论更多... – apk

+0

正是我所想!如果你有一个可行的解决方案,那么你可以尽可能地使用它,而且我已经在基于Windows的持续集成服务器上运行浏览器进行了很多测试,这些服务器没有桌面运行,这当然是可能的。 –

回答

0

你也可以使用Celerity。它使用Watir API驱动无头浏览器。

+0

谢谢!我很高兴能够用熟悉的Watir语法来做到这一点(可能在未来也有用)。 (我之前听说过“Celerity”一词,但我不知道它是什么......) – apk

0

我用这个PhantomJS(与水豚司机poltergeist)。它运行无头WebKit(Safari和Chrome的浏览器引擎),并且Capybara告诉它该做什么。这是我发现的这个概念的最简单的设置实现。

的代码看起来是这样的:

visit "http://www.vero.fi/vere/Tarkistus/VeronumeronTarkistus.aspx/" 
fill_in "tbNimi", :with => "John Smith" 
fill_in "tbVerotunnus", :with => "123456789012" 
click_on "btnHae" 
info = page.html 
0

帮助与硒的服务器上运行和Firefox在无头运行状态

我基本上已经写了这一篇文章在here

希望这个帮助