2014-10-27 106 views
0

我試圖在輸入一個單詞後獲取JQuery自動完成的HTML。爲此,我決定嘗試使用selenium webdriver。使用Selenium Webdriver訪問JQuery Auto完成

我讀過文檔,我想我遇到了一些問題。

1)I'ts沒有找到,雖然我敢肯定,我選擇是正確的

2)我不知道如何讓HTML從一個IWebElement字符串搜索建議。

這裏是我的代碼無法正常工作:

IWebDriver driver = new FirefoxDriver(); 

    driver.Navigate().GoToUrl("https://site.xxx/"); 

    IWebElement query = driver.FindElement(By.Name("stext")); 

    query.SendKeys("iphone"); 

    // Everything up to this point works, I put a wait in here just incase it takes a few seconds to load 
    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(2)); 

    // This seems to come back empty but in developer tools for chrome I can see it 
    IWebElement results = driver.FindElement(By.ClassName("ac_results")); 

任何人都可以看到,我錯了?

回答

0

在你的結果調用add .text();結束以獲取元素的文本值。 Java語法。

String val = driver.findElement(By.ClassName("ac_results")).text(); 

或者

WebElement we driver.findElement(By.ClassName("ac_results")); 

String val = we.text(); 
+0

謝謝你的答覆@bcar。對我來說,文字是一種財產,而不是一種方法。它似乎是內部文本而不是完整的HTML。另外我沒有提及「WebElement」,我是否錯過了某些東西,或者你的意思是「IWebElement」? – Guerrilla 2014-10-27 12:15:41

+0

我給你的Java版本。 Iwebdriver是界面。你可以嘗試javascriptexecutor並調用executeScript(「你的javascript」),並抓住你需要的方式。 – bcar 2014-10-27 12:49:10

+0

謝謝。我發現它爲什麼會回到空白。驅動程序的源代碼不像在開發人員工具中那樣更新。有一個空的div,jquery用搜索結果填充,然後我輸入文本,然後在驅動程序上檢查頁面源,它​​仍然是一個空的div,但是chrome顯示它具有內容。現在我有點困惑如何抓住HTML – Guerrilla 2014-10-27 12:57:35

0

我想嘗試的javascriptexecutor,見下圖:(C#版)

IWebDriver driver; 
IJavaScriptExecutor jse = driver as IJavaScriptExecutor; 
string body = (string)jse.ExecuteScript("return document.body");