硒不';无法识别新打开的窗口-Selenium C#

硒不';无法识别新打开的窗口-Selenium C#,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,似乎我的代码中遇到了一些同步问题。 在我的过程中,我点击一个按钮,打开一个新窗口。 我正在通过以下代码切换到新窗口 \u webdriver.SwitchTo().Window(\u webdriver.WindowHandles.Last();我不确定这在C中是如何实现的,但我认为selenium是一样的,您只需对循环使用C语法即可 //Switch to newly opened window (JAVA) for(String winHandle : driver.get

似乎我的代码中遇到了一些同步问题。 在我的过程中,我点击一个按钮,打开一个新窗口。 我正在通过以下代码切换到新窗口


\u webdriver.SwitchTo().Window(\u webdriver.WindowHandles.Last();
我不确定这在C中是如何实现的,但我认为selenium是一样的,您只需对循环使用C语法即可

    //Switch to newly opened window (JAVA)
    for(String winHandle : driver.getWindowHandles()){
      driver.switchTo().window(winHandle);
    }
这就是我在Java中所做的。如果我没有错的话,在C#中你也会得到同样的方法
driver.getWindowHandles()

希望这对您有所帮助。

您可以等待两个窗口,然后将上下文设置为新窗口:

var wait=new-WebDriverWait(驱动程序,TimeSpan.FromSeconds(20));
//等待2个窗口
ReadOnlyCollection句柄=null;
等待.直到((d)=>(句柄=驱动程序.WindowHandles).Count>1);
//在新窗口上设置上下文
driver.SwitchTo().Window(句柄[handles.IndexOf(driver.CurrentWindowHandle)^1]);