我想使用IJavaScriptExecutor
初始化WebDriverWait
的变量,而不是WebDriver
。可能吗?
实际结果:
private IWebDriver webDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor) webDriver;
预期结果:
private WebDriverWait waitDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor) waitDriver;
还是有一种更容易解决问题的方法吗?
答案 0 :(得分:0)
你不能这样做。 IJavaScriptExecutor
是RemoteWebDriver
类扩展的接口。 ChromeDriver
,FireFoxDriver
以及所有其他WebDrivers
都继承自RemoteWebDriver
,因此他们也会扩展界面。
WebDriverWait
类不会扩展此接口,因此无法将其强制转换为它。
此外,WebDriver API包含方法ExecuteJavaScript<T>
。不再需要转换为IJavaScriptExecutor
(对于版本2.53.0及更新版本,不确定何时添加它)。
IWebDriver webDriver = new ...;
webDriver.ExecuteJavaScript<object>("...");