我可以将WebDriverWait与JavaScriptExecutor一起使用吗?

时间:2017-02-23 20:42:16

标签: c# selenium selenium-webdriver

我想使用IJavaScriptExecutor初始化WebDriverWait的变量,而不是WebDriver。可能吗? 实际结果:

private IWebDriver webDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor) webDriver;

预期结果:

private WebDriverWait waitDriver;  
IJavaScriptExecutor jse = (IJavaScriptExecutor) waitDriver;

还是有一种更容易解决问题的方法吗?

1 个答案:

答案 0 :(得分:0)

你不能这样做。 IJavaScriptExecutorRemoteWebDriver类扩展的接口。 ChromeDriverFireFoxDriver以及所有其他WebDrivers都继承自RemoteWebDriver,因此他们也会扩展界面。

WebDriverWait类不会扩展此接口,因此无法将其强制转换为它。

此外,WebDriver API包含方法ExecuteJavaScript<T>。不再需要转换为IJavaScriptExecutor(对于版本2.53.0及更新版本,不确定何时添加它)。

IWebDriver webDriver = new ...;
webDriver.ExecuteJavaScript<object>("...");