Selenium使用JavaScript或获取元素时出错

使用Seleneium 2.25,我遇到了很多问题。

我正在尝试从我的计算机(本地/客户端)在远程计算机(服务器)上使用Selenium Remote Driver。 但是,当我尝试使用DesiresCapabilities.Htmlunit()时,它将找到元素,但它表示它们不可见。 我完全被这个难过了。 我不确定为什么它可以找到,但后来不可见。

所以我试着用一些JavaScript来强制它。 它返回并抛出一个错误,说网页在加载页面之前无法执行javascript。 当我做了一个牵连的等待,它发现了它正在等待的元素时,这怎么可能?

DesiredCapabilities iecapa = DesiredCapabilities.HtmlUnit(); iecapa.IsJavaScriptEnabled = true; driver = new RemoteWebDriver(new Uri("http://:4444/wd/hub"), iecapa); IJavaScriptExecutor jQuery = ((IJavaScriptExecutor)(driver)); addressElement = (IWebElement)jQuery.ExecuteScript("return document.GetElementByName('searchAddress')"); 

所以,如果有人想帮助我,我将不胜感激! 谢谢!

http://sofzh.miximages.com/c%23/4jseleniumhtmluniterrorj/

那就是错误。 StackOverflow不会让我在这里发布。 =(

试试这个:

 WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 0, 30)); wait.Until(p => driver.FindElement(By.Name("searchAddress"))); IJavaScriptExecutor jQuery = ((IJavaScriptExecutor)(driver)); addressElement = (IWebElement)jQuery.ExecuteScript("return document.GetElementByName('searchAddress')"); 

您还可以添加JavaScript检查:

 if (document.readyState.toLowerCase()=="complete") return document.GetElementByName('searchAddress'); return 'Error';