2014-04-30 81 views
1

我正在使用htmlunit進行網絡報廢 - 代表用戶登錄網站,在他們的個人資料中設置一些內容,然後回來。 只需使用純Htmlunit並且不使用硒框架。 現在我的問題: WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_11);htmlunit是否在正在運行的機器上創建瀏覽器實例?

這個聲明 - 在我正在執行代碼的機器上創建瀏覽器實例還是它在做什麼? 我正在使用BrowserVersion.INTERNET_EXPLORER_11,因爲這是該網站上接受的瀏覽器。

硒如何不同於htmlunit - 我知道我們可以在Selenium中使用htmlunit作爲webdriver。 Selenium是否需要執行代碼的計算機上的本機瀏覽器實例? Selenium是否創建瀏覽器實例?

我的用例是 - 我將有多個用戶訪問此應用程序。我知道htmlunit中的WebClient不是線程安全的(所以必須將它編碼爲Spring proto類型的bean)。 有沒有關於這方面的任何建議? 任何幫助,不勝感激。

回答

0

HTMLUnit是一個無頭瀏覽器。所以沒有窗口將與Selenium一起使用。設置BrowserVersion只會告訴HTMLUnit將其自身呈現給服務器,就好像它是給定的瀏覽器(AFAIK,它只會更改用戶代理,但可能會根據版本執行額外的內部處理),如果它是。我想這回答了大部分問題,但最後一個問題。

關於如何實現這個問題的建議,我會盡量避免以這種方式登錄到網站。如果網站沒有爲此提供API,那麼它很可能就是服務條款。假設不是,每次需要從其他站點提取數據時,您都必須爲每個用戶創建新的WebClient實例。

相關問題