2017-02-23 90 views
0

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

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

预期结果:

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

还是有我的麻烦,更简单的方法?

+0

你在做什么试图完成?你可以用'WebDriverWait'和'IWebDriver',然后用'IJavaScriptExecutor'接口进行编程。 – mrfreester

回答

0

你不能这样做。 IJavaScriptExecutorRemoteWebDriver类扩展的接口。 ChromeDriver,FireFoxDriver和所有其他WebDrivers继承自RemoteWebDriver,所以它们也扩展了接口。

WebDriverWait类没有扩展这个接口,所以它不能被转换为它。

此外,WebDriver API包含方法ExecuteJavaScript<T>。至IJavaScriptExecutor的演员已不再需要(至少对于版本2.53.0和更新版本,不确定何时添加)。

IWebDriver webDriver = new ...; 
webDriver.ExecuteJavaScript<object>("..."); 
相关问题