2016-01-03 34 views
0

所以我正在玩一個客觀的c桌面應用程序(不是iOS)。我將一個網頁的內容加載到一個WebView中,我想填充輸入字段,如用戶名和代碼中的硬編碼文本。通過xpath獲取輸入元素Objective C

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame 

被調用後,我怎樣才能到基於XPath的元素?

例如對於XPath,我想要訪問

/html/body/div[3]/div[3]/div[2]/div[2]/div/form/div[1]/div[2]/div[2]/div/div[8]/div/input 
//*[@id="username"] 

回答

0

IMO,使用JavaScript來操縱HTML比使用XPath更強大和更靈活,原因很多。我建議你在Web視圖中執行適當的JavaScript。這裏是一個示例實現:

- (BOOL) insertFormFieldValues: (UIWebView *) webView 
{ 
    NSString *result = [webView stringByEvaluatingJavaScriptFromString:@"insert your javascript here"]; 
    return result == RESULT_OK; 
} 
+0

謝謝安吉拉。是的,我知道stringByEvaluatingJavaScriptFromString,即使在這種情況下,我有一個WebView不是UIWebView,仍然可以工作。但我不知道的是如何通過這條路徑獲得這個元素。我總是知道路徑,形式是一樣的,我只是不知道如何去做。 – Zsolt

+1

在JavaScript中,代碼將是:document.getElementById('username')。value ='myusername'; –

+0

謝謝安吉拉。作品。 - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame [sender stringByEvaluatingJavaScriptFromString:@「document.getElementById(\」username \「)。value = \」xyz \「」]; – Zsolt