如何让C#WebDriver Windows将SwitchTo与IE和新窗口一起使用

时间:2011-10-05 13:27:34

标签: c# webdriver

我还是C#编程的新手,并且能够让WebDriver正常工作以完成我需要在我们网站上完成的大部分工作,除非启动新窗口。似乎有很多选项可以在Java中处理这个问题,但我似乎无法在如何收集Window Handles然后切换到新生成的句柄方面实现C#的飞跃。我面临的部分问题是,由于新窗口填充需要几秒钟,我正在尝试等待能够捕获新窗口。当我最初这样做时,我尝试使用

wait.Until(WebDriver => driver.Title.Equals("_blank"));
driver.SwitchTo().Window("_blank") 

确保在尝试切换到窗口之前生成Window。

然后阅读更多内容我发现我必须在切换之前捕获windowHandles,因为我仍然需要等待Window生成并填充我想我需要某种时间检查新句柄和切换到它,在那一点上我不知道该怎么做。

我正在使用selenium2的.Net WebDriver和SpecFlow,因此所有测试都在C#中,我觉得做C#比使用Java更舒服,尽管我没有用C#做过很多高级工作。如果有人有一些提示让我开始如何解决这个问题,我会很感激。

1 个答案:

答案 0 :(得分:1)

WebDriver.Support.dll中的.NET支持类有一个PopupWindowFinder类,旨在帮助确切地解决这个问题。它目前被列为实验性的,但至少,您可以检查that class的代码,看看它是如何工作的。如果它不能完全满足您的需求,它可能会为您提供有关如何编写自己代码的一些见解。