C# 中的 WebDriver(使用 Windows 和同步)
我在 #IE9 中使用 webDriver 并发现一个问题。如果我在运行模式下开始测试,那么所有测试都会失败,因为 webDriver 不存在(即两个窗口),但如果我在测试中放置断点并启动测试调试模式,我已经通过了所有测试。请告诉我,该怎么办,因为我不知道。 这是我的代码:
private void MyMethods(IWebdriver driver)
{
foreach (var item in driver.WindowHandles) // if I put breakpoint, I see 2 count Window Handles else this methods don't work.
{
if (driver.SwitchTo().Window(item).Title == "PortalSubMenuPopupForm")
{
driver.SwitchTo().Window(item);
break;
}
}
}
I work with webDriver in #IE9 and I find one problem. If I started tests in Run mode, then all test fail because webDriver not exists (two window ie), but if I put breakpoint in tests and start tests Debug mode I have passed all tests. Please tell me, what do, because I don't know.
This my code:
private void MyMethods(IWebdriver driver)
{
foreach (var item in driver.WindowHandles) // if I put breakpoint, I see 2 count Window Handles else this methods don't work.
{
if (driver.SwitchTo().Window(item).Title == "PortalSubMenuPopupForm")
{
driver.SwitchTo().Window(item);
break;
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Selenium 与 IE 存在一个“问题”,即新窗口可能不会立即出现在 WindowHandles 列表中。
解决方案是
river.WindowHandles
之前等待固定时间,或者
WebDriverWait
类等待 WindowHandles 下的元素数量发生变化我认为第二个更强大。这是一个快速实现:
现在您可以像这样使用该函数:
Selenium has an "issue" with IE where new windows might not appear on the
WindowHandles
list right away.The solution is either
river.WindowHandles
or
WebDriverWait
class to wait for the number of elements underWindowHandles
to changeI think the second one is more robust. Here is a quick implementation:
Now you can use the function like so: