C# で最新バージョンの webdriver を使用してウィンドウを切り替えようとすると、スタックします。
ボタンをクリックすると、新しいウィンドウが開きます。
このボタンのターゲット コードは次のとおりです。
window.open(uri, "DisplayPage", " width=1200, scrollbars=yes , resizable = yes , toolbar = no , menubar = no");
以下のコードを使用して、新しいウィンドウをターゲットにしています
string BaseWindow = _driver.CurrentWindowHandle;
ReadOnlyCollection<string> handles = _driver.WindowHandles;
foreach (string handle in handles)
{
if (handle != BaseWindow)
{
_driver.SwitchTo().Window(handle).Title.Equals("DisplayPage");
}
}
}
上記のように、ベース ウィンドウからターゲット タイトルを使用するウィンドウに切り替えています。これはうまくいかないようです。
その後、開いたウィンドウのタイトルが異なっていることに気付きました。それは「表示 - 取引ページ」でした。
次に、コードをこれに変更しました
string BaseWindow = _driver.CurrentWindowHandle;
ReadOnlyCollection<string> handles = _driver.WindowHandles;
foreach (string handle in handles)
{
if (handle != BaseWindow)
{
_driver.SwitchTo().Window(handle).Title.Equals("Display - Transaction Page");
}
}
}
まだ運がありません。
興味深いことに、「ウィンドウが見つかりません」というエラーは表示されません。
問題は、新しく開いたページの要素をクリックしようとすると、新しく開いたウィンドウが対象になっていないことを意味する NoSuchElementException が発生することです。
何か案は?
よろしく、
持っています