C# 使用Selenium Webdriver访问JQuery自动完成

C# 使用Selenium Webdriver访问JQuery自动完成,c#,selenium-webdriver,C#,Selenium Webdriver,我试图在键入一个单词后获得JQuery自动完成的HTML。为此,我决定尝试SeleniumWebDriver 我阅读了文档,我想我遇到了一些问题 1) 我没有找到搜索建议,尽管我很确定我选择的是正确的 2) 我不知道如何从IWebElement将HTML转换成字符串 以下是我的代码,它不起作用: IWebDriver driver = new FirefoxDriver(); driver.Navigate().GoToUrl("https://site.xxx/");

我试图在键入一个单词后获得JQuery自动完成的HTML。为此,我决定尝试SeleniumWebDriver

我阅读了文档,我想我遇到了一些问题

1) 我没有找到搜索建议,尽管我很确定我选择的是正确的

2) 我不知道如何从IWebElement将HTML转换成字符串

以下是我的代码,它不起作用:

    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"));

有人知道我哪里出错了吗?

在结果调用add.text()时;结束以获取元素的文本值。 Java语法

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


我想试试javascriptexecutor,见下面:(C版本)


感谢您的回复@bcar。对我来说,文本是一个属性而不是一个方法。它似乎是用于内部文本,而不是完整的HTML。我也没有“WebElement”的参考资料,是我遗漏了什么还是你的意思是“IWebElement”?我给了你java版本。Iwebdriver是接口。您可以尝试javascriptexecutor并调用executeScript(“您的javascript”),然后通过这种方式获取所需内容。谢谢。我找到了它为什么会一片空白。驱动程序的源代码没有像在开发人员工具中那样更新。jquery用搜索结果填充了一个空div,在我输入文本并检查驱动程序上的页面源代码后,它仍然是一个空div,但chrome显示它包含内容。我现在有点困惑如何抓取html
WebElement we driver.findElement(By.ClassName("ac_results"));

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