2011-10-05 43 views
0

我对C#编程还很陌生,并且能够让WebDriver正常工作以完成我需要在我们的网站上完成的大部分工作,除了当新窗口启动时。看起来在Java中有很多选项可以处理这个问题,但是我似乎无法像C#那样收集窗口句柄,然后切换到新生成的窗口。我面对的部分问题是,由于需要几秒钟才能填充新窗口,所以我试图等待以捕获新窗口。当我最初这样做时,我尝试使用如何让C#WebDriver Windows在IE和新窗口中使用SwitchTo

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

确保窗口在尝试切换到它之前产生。

然后阅读更多关于这个我发现我不得不捕捉windowHandles之前进行切换,因为我仍然需要等待窗口产卵和填充我想我需要一些时间来检查新的句柄并切换到它,那时我不知道该怎么做。

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

回答

1

WebDriver.Support.dll中的.NET支持类有一个PopupWindowFinder类,专门用于帮助完全控制这种情况。它目前被列为实验,但至少可以检查that class的代码以了解其工作原理。如果它不能完全满足你的需求,它可能会给你一些关于如何编码自己的见解。

+0

这很好!非常感谢你。 – MichaelF

相关问题