背景:
一直在使用 Selenium 2.0 (WebDriver),并了解在定位元素时焦点会移动到元素上,如下所示:
var element = driver.FindElement(By.CssSelector("#foo"));
element.Click();
我也知道如果 jQuery 在被测页面上,我们可以做一些强大的事情(太酷了):
IJavaScriptExecutor scriptExecutor = ((IJavascriptExecutor)driver);
scriptExecutor.ExecuteScript("$('#foo')[0].click();";
IWebElement hiddenElement = scriptExecutor.ExecuteScript("return $('#my_dynamic_element')[0]");
hiddenElement.Click; // found ya!
问题:
Selenium 的 WebDriver(特别是 .NET 风格)在将.ExecuteScript()
结果转换为IWebElement
.