2009-08-10 29 views
2

我正在研究製作一種機器人測試瀏覽器。像Selenium一樣,但我們可以使用它來對我們的網站進行完整的集成測試。我想知道是否可以創建一個Cocoa應用程序來加載WebView中的網頁,並以編程方式發送點擊事件。我知道你可以使用:可可自動化WebView

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 

要發送JS點擊evenets,但它會更好,如果你可以發送點擊事件到DOMElements自己。這樣你就可以測試文件上傳和其他不能通過javascript訪問的元素,比如flash。有誰知道這是否可能?

回答

2

可以通過使用一個WebView-windowScriptObject方法(即返回一個對應的JavaScript window對象WebScriptingObject*)或任何幀的-DOMDocument方法返回框的JavaScript document方法獲得完全對應的JavaScript的Node對象的DOMNode *對象。

例子:

DOMDocument* d = [[webView mainFrame] DOMDocument]; 
[[[d getElementsByTagName:@"a"] item:0] click]; 
0

Fake聽起來像你想要什麼。這是基於WebKit的,自動化的,支持Tab的,還有一個巨大的庫,其中包含很多有用的東西,比如評估JavaScript,斷言,變量,事件和循環。強烈推薦。

+0

它可以處理測試上傳嗎? – jpoz 2011-01-06 00:37:43

+0

好問題!我只是測試了這個簡單的工作流程,沒有任何問題:加載一個URL,設置HTML元素的值和提交HTML表單。按預期方式將文件上傳到服務器(甚至可以將文件拖放到工作流中的「值」字段中)。 – 2011-01-06 06:30:54