我可以在JavaScriptExecutor中使用WebDriverWait吗?
问题描述:
我想用WebDriverWait
初始化变量IJavaScriptExecutor
,而不是WebDriver
。可能吗? 实际结果:我可以在JavaScriptExecutor中使用WebDriverWait吗?
private IWebDriver webDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor) webDriver;
预期结果:
private WebDriverWait waitDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor) waitDriver;
还是有我的麻烦,更简单的方法?
答
你不能这样做。 IJavaScriptExecutor
是RemoteWebDriver
类扩展的接口。 ChromeDriver
,FireFoxDriver
和所有其他WebDrivers
继承自RemoteWebDriver
,所以它们也扩展了接口。
WebDriverWait
类没有扩展这个接口,所以它不能被转换为它。
此外,WebDriver API包含方法ExecuteJavaScript<T>
。至IJavaScriptExecutor
的演员已不再需要(至少对于版本2.53.0和更新版本,不确定何时添加)。
IWebDriver webDriver = new ...;
webDriver.ExecuteJavaScript<object>("...");
你在做什么试图完成?你可以用'WebDriverWait'和'IWebDriver',然后用'IJavaScriptExecutor'接口进行编程。 – mrfreester