IE が onclick.window.open() を使用して 2 番目のブラウザー ウィンドウを開くと、2 番目のウィンドウで何らかの処理を行ってからウィンドウを閉じる必要があります。
ウィンドウハンドルに関してstackoverflowにある次の推奨事項を試しました:
string popupHandle = string.Empty;
ReadOnlyCollection<string> windowHandles = selObj.Driver.WindowHandles;
foreach (string handle in windowHandles)
{
if (handle != originalHandle)
{
popupHandle = handle;
break;
}
}
selObj.Driver.SwitchTo().Window((popupHandle));
selObj.Driver.Close();
selObj.Driver.SwitchTo().Window(originalHandle);
このコードを実行する前に、新しいウィンドウのコントロールをクリックしてフォーカスを変更しようとしました。
Webdriver はコントロールを見つけることができません (また、WebDriverWait クラスを使用して、2 番目のブラウズが完全にロードされるまで待機しようとしました。
WebDriverWait も、待機秒後に例外をスローします。
実行しようとしたとき:
selObj.Driver.SwitchTo().Window((popupHandle));
次の例外が発生します。
No response from server for url http://
私はこれが C# と IE であることを知っています。
ありがとう