【发布时间】:2012-05-05 03:28:17
【问题描述】:
我在尝试使用 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,这意味着新打开的窗口没有被定位。
有什么想法吗?
问候,
哈桑
【问题讨论】:
-
噢!谁会想到。新打开的窗口不是 IE 中“受信任的站点”的一部分。我的代码是正确的,在将目标 URL 添加到我的受信任站点后,它现在可以正常工作了。
标签: c# selenium automation webdriver selenium-webdriver