Selenium Webdriver如何在不同的Firefox窗口之间切换

Selenium Webdriver如何在不同的Firefox窗口之间切换,firefox,selenium,junit,webdriver,selenium-webdriver,Firefox,Selenium,Junit,Webdriver,Selenium Webdriver,为了以4个不同的角色登录会议,我为每个角色编写了 System.setProperty(“webdriver.firefox.profile”,“default”); FirefoxDriver=新的FirefoxDriver(); driver.manage().timeouts().implicitlyWait(120,TimeUnit.SECONDS); 获取(“会议链接”); 那么我如何在Firefox窗口之间切换呢?Windows标题是相同的。 谢谢公共任务打开窗口(){ WebDr

为了以4个不同的角色登录会议,我为每个角色编写了

System.setProperty(“webdriver.firefox.profile”,“default”);
FirefoxDriver=新的FirefoxDriver();
driver.manage().timeouts().implicitlyWait(120,TimeUnit.SECONDS);
获取(“会议链接”);
那么我如何在Firefox窗口之间切换呢?Windows标题是相同的。 谢谢

公共任务打开窗口(){
WebDriverWait wait=新的WebDriverWait(Driver.Driver,TimeSpan.FromSeconds(10));
IgnoreExceptionTypes(typeof(AssertionException));
字符串windowName=等待。直到((d)=>{
这个.windowSwitcher.Click();
如果(d.WindowHandles.Count!=2)//这意味着您正在等待窗口数等于2{
返回null;
}
返回d.WindowHandles[1];//这意味着您正在更改到第二个窗口(从[0]到[1])
});
返回新任务swindow(windowName);
}

这在c#

中起作用。如果需要,您可以使用此代码在窗口之间导航。您可以根据需要对其进行更改

//All the window handles will be returned and u can use window handle to switch between the windows

Set<String> windows = getWebDriver().getWindowHandles();

    Iterator<String> window = windows.iterator();


    while( window.hasNext() ) {

        getWebDriver().switchTo().window( window.next() );

    }
//将返回所有窗口句柄,您可以使用窗口句柄在窗口之间切换
设置windows=getWebDriver().getWindowHandles();
迭代器窗口=windows.Iterator();
while(window.hasNext()){
getWebDriver().switchTo().window(window.next());
}

您是否为每个角色创建新的FirefoxDriver?如果是这种情况,您应该只使用对应于每个窗口的FirefoxDriver。