0

元 -

操作系统:OSX El capitan Selenium 版本:2.53.0 浏览器:Safari 浏览器版本:9.1 SafariDriver 版本:2.48.0,根据 SeleniumHQ 站点最新。

预期行为 -

SafariDriver Launcher 页面/选项卡应自动关闭并切换到打开我的 URL 的第一个选项卡。

实际行为 -

Selenium 卡在 SafariDriver Launcher 页面 [Tab] 上,不关闭它并切换回第一个选项卡

重现步骤 -

尝试从 TestNG.xml 执行 n 个测试用例,但通过关闭 SafariDriver Launcher 页面 [tab] 可以正确执行少数 TC。但是在少数情况下,Selenium 卡在 SafariDriver Launcher 页面[Tab] 上,因为没有关闭它并切换回我的 URL 将打开的第一个选项卡。

所需解决方案 -

我想首先检查当前打开了多少标签:-

if(browser.equals("safari")){
capability=DesiredCapabilities.safari();
capability.setBrowserName("safari");
capability.setPlatform(Platform.MAC);
capability.setVersion("9.1");
capability.setJavascriptEnabled(true);
driver=new RemoteWebDriver(new URL(grid_url),capability);
driver.get(url);
Thread.sleep(2000);
String windowHandle = driver.getWindowHandle();
ArrayList tabs = new ArrayList (driver.getWindowHandles());
if(tabs.size()>1){

        <***Need a solution here to close second tab and switch to   first tab***>
                    driver.switchTo().window(tabs.get(0));
        }
}
4

1 回答 1

0

您可以使用此代码关闭您想要的窗口:

for(String handle : driver.getWindowHandles()) {
        if (!handle.equals(originalHandle)) { //the window handle you want to close
            driver.switchTo().window(handle);
            driver.close(); // would close the specific tab you wanted
        }
    }

在您的情况下 originalHandle 可能是您所在的当前窗口(选项卡 2)的句柄。

于 2016-05-18T06:22:13.070 回答