2012-08-28 236 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

希望這個幫助