幾周來我試圖自動執行瀏覽任務。 任務很簡單:登錄,點擊鏈接,輸入變量並提交,註銷。 我需要創建一個這樣的網站(排序一個更簡單的接口)請記住,該網站正在使用Servlets,我無法訪問網站代碼。 起初我試過CURL,但是因爲頁面中有一些Ajax元素捲曲無法顯示內容。 我嘗試過.NET Webdriver,JUnit,Selenium等,但都渲染ajax元素失敗。 我試過perl和python機械化,而perl沒有工作,我能夠獲得與python的動態內容。 問題不在於我的鏈接是Javascript執行,而是以Javascript開始:我不認爲我可以使用Mechanize調用函數。 有誰知道這個任務甚至可能嗎?如何自動執行瀏覽任務?
回答
的Perl模塊,WWW::Mechanize
是自動化網頁瀏覽的任務,如,下載,上傳,表單提交,驗證,簡單的瀏覽,屏幕抓取的最流行的方式等等,等等
如果網站包含的JavaScript,流行的Perl模塊來處理它們是使用WWW::Mechanize::Firefox
。
到目前爲止,「幾乎」任何類型的網站,包括像JavaScript和Ajax技術,並使用SSL安全性,或通過代理服務器訪問可以通過屬於LWP::UserAgent
和WWW::Mechanize
或WWW::Mechanize::Firefox
的Perl模塊相結合的方法進行處理。通過網絡提供的示例負載。
我理解它的方式WWW :: Mechanize :: Firefox需要MozlRepl這是一個Firefox擴展,並且與我的命令行環境無關。 – user1470618 2012-07-18 19:49:44
你使用的是什麼樣的「命令行環境」?您也可以使用WWW :: Scripter來處理JavaScript。 – Annjawn 2012-07-18 19:56:06
謝謝Annjawn,只是linux,事情是我想創建一個需要憑據的網站,並運行一個腳本來自動化一些任務,因此所有的任務都應該在腳本中完成,我也會看看Scripter。但我得出的結論是,儘管大家都說,處理複雜的網站與腳本是可能極其困難和模塊依賴。 – user1470618 2012-07-18 20:11:42
一個例子使用casperjs:
var casper = require('casper').create({
verbose: true,
logLevel: 'debug'
});
casper.start(
'http://example.com',
function() {
this.evaluate(function() {
return $('#someElementId div').length; // This runs as if it was on the page
});
this.fill(
'#formId',
{
email: '[email protected]',
password: 'password123'
},
true
); // This submits login form
}
);
Casperjs店餅乾,所以請求更深的網頁都不會失敗。有關提交表單的詳細信息,請參閱()。
請參閱evaluate()以運行js,就好像它在您正測試的頁面上執行一樣。
如果你想測試AJAX操作 - 沒問題。他們將運行,就好像該頁面在瀏覽器中運行一樣,您可以在DOM中看到結果。您可以使用evaluate()手動啓動它們。
* OOOOO一堆隨機鏈接!* - 任何更多的信息將是有益的。 – rlemon 2012-07-17 22:37:49
Selenium WebDriver在Ajax元素上失敗。 – user1470618 2012-07-17 22:38:23
另外你確定我能用Phantom運行服務器端JavaScript嗎? – user1470618 2012-07-17 22:38:43
- 1. 如何自動執行BUILD任務
- 2. 自動執行Eclipse任務
- 3. 如何使用wget自動完成網頁瀏覽任務?
- 4. 在Xcode 4中自動執行任務
- 5. 使用PHP自動執行任務
- 6. SVN腳本來自動執行任務
- 7. 流浪ssh後自動執行任務
- 8. 自動執行平凡的任務
- 9. 使用UFT自動執行HPALM任務
- 10. django-cron任務不會自動執行
- 11. 許多Selenium瀏覽器執行相同的任務(python)
- 12. 如何執行gradle任務
- 13. 如何在SVN更新後自動執行Visual Studio任務?
- 14. 如何在JFrame顯示後自動執行任務?
- 15. 如何在Odoo 10創建自動執行任務?
- 16. 如何在構建後自動執行重複性任務?
- 17. 如何在Linux中自動執行在線任務?
- 18. 如何在Xcode中自動執行任務?
- 19. 如何最有效地自動執行重複的Excel任務?
- 20. 如何自動滾動瀏覽郵件
- 21. 活動不執行任務
- 22. 如何在Chrome,Microsoft Edge或任何其他瀏覽器中自動執行UI測試?
- 23. 如何爲瀏覽器場景自動執行多用戶登錄
- 24. 如何在自動成功執行.bat文件後關閉瀏覽器
- 25. 如何自動執行定期執行作業的WCF服務
- 26. 如何從現代瀏覽器中啓動可執行文件?
- 27. Windows可執行文件如何從瀏覽器中啓動[.exe]?
- 28. 在任務並行庫:如何推遲Task.TaskFactory.FromAsync任務執行?
- 29. 在部署Salesforce項目後自動執行手動任務
- 30. 如何執行INotifyPropertyChanged自動
您是否嘗試過使用selenium的'waitFor's來讓Ajax播放更好?它究竟如何'失敗'? – 2012-07-17 22:42:32
Selenium登錄失敗。我使用硒的.NET包裝,並無法通過登錄屏幕。我收到了「您必須輸入密碼」錯誤。 (是的表單字段的名稱是正確的) – user1470618 2012-07-17 22:57:29
[機械化常見問題](http://p3rl.org/WWW::Mechanize::FAQ#JavaScript)包含缺少JavaScript支持的解決方法,並列出許多模塊有Javascript支持。 – daxim 2012-07-18 07:41:51