2011-11-02 46 views

回答

13

機械化可以做很多事情。它使用net/http,所以無論你使用net/http可以做什麼,都可以通過機械化來完成。雖然它支持更多按照他們的描述:

機械化庫用於自動化與網站的交互。機械化會自動存儲和發送Cookie,遵循重定向,可以跟隨鏈接並提交表單。表單域可以被填充和提交。機械化還會跟蹤您作爲歷史訪問的網站。

退房此鏈接的使用JavaScript和機械化的一些信息:here

這將是更容易告訴你,如果機械化支持,而不是通過一切順利特定功能/任務。你想要做什麼?

JavaScript是機械化不能做的一件事。它支持大部分時間的一件事是顯示Javascript鏈接。即使用page.links.each {|link| puts link.text}也將顯示Javascript,但您將無法點擊/選擇它們。

簡而言之,Watir確實支持Javascript。它實際上是支持javascript和Watir控制瀏覽器的瀏覽器。

Watir運行一個真正的瀏覽器(FF,Chrome,IE)並以編程方式控制該瀏覽器。它的行爲與用戶在訪問網站時完全相同。這是什麼讓你使用JavaScript。 Watir只控制瀏覽器,瀏覽器是發送請求並獲取響應並渲染/處理的瀏覽器。您受限於您使用的瀏覽器的速度。

機械化另一方面就像它自己的'瀏覽器'一樣,比Watir快得多,因爲它不會呈現頁面。它直接與服務器通信,並處理原始響應。機械化受到連接速度的限制。

當您需要觀察並查看發生了什麼,使用javascript或執行任何GUI相關操作時,Watir將用於Mechanize。機械化速度更快,對於測試網站的實際結構非常有用。 (測試鏈接/登錄/等)

+1

技術上,Watir只支持IE。要做FireFox(當前版本),Chrome,Opera或無人操作,您需要使用Watir-Webdriver。 (相同的基本Watir API,但使用webdriver來控制瀏覽器)還有一個.execute_script方法,但它通常被忽視,因爲這不是用戶可以做的事情,但在某些情況下,它是圍繞複雜事件的最簡單方法驅動控制 –

+1

可以在沒有「顯示」的情況下在linux服務器上工作嗎?如何在沒有OS顯示的情況下打開瀏覽器? –

+1

你需要去無頭,我從來沒有嘗試過,也不知道如何去做。也許看看機械寶石吧。 –