2017-02-23 91 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>("..."); 
相關問題