C# の Visual Studios 2010 で Selenium Web ドライバーを使用しています。jQuery を使用して div のリストを除外し、Selenium を使用してそれらをダブルクリックしています。しかし、私が何をしても、InvalidCastException を取り除くことはできないようです。
ここに私が書いたコードがあります:
IWebDriver m_driver = new ChromeDriver();
IJavaScriptExecutor js = m_driver as IJavaScriptExecutor;
string jsQuery = [insert some query here that returns list of divs];
object result = js.ExecuteScript(jsQuery);
System.Collections.ObjectModel.ReadOnlyCollection<IWebElement> list = (System.Collections.ObjectModel.ReadOnlyCollection<IWebElement>)result;
ただし、結果は webelements のリストを返しますが、何らかの理由で、上記のコードが正常に実行されてキャストされる場合と、ChromeDriver でキャストされない場合があります。機能しない場合、提供されたコードの最後の行は次のように失敗します。
"Unable to cast object of type 'System.Collections.ObjectModel.ReadOnlyCollection`1[System.Object]' to type 'System.Collections.ObjectModel.ReadOnlyCollection`1[OpenQA.Selenium.IWebElement]'."
InternetExplorerDriver では、ほとんどの場合、次のように失敗します。
Unable to cast object of type 'OpenQA.Selenium.Remote.RemoteWebElement' to type 'System.Collections.ObjectModel.ReadOnlyCollection`1[OpenQA.Selenium.IWebElement]'.
IEのRemoteWebElementにキャストしようとしましたが、RemoteWebElementのリストではなくRemoteWebElementが表示されるため、後で列挙できないため、どちらも機能しません。
理由の手がかりはありますか?