【问题标题】:Grid-Safari-Selenium is getting stuck on SafariDriver Launcher page[second Tab] by not closing it and NOT switching back to first TabGrid-Safari-Selenium 卡在 SafariDriver Launcher 页面[第二个选项卡] 上,不关闭它并且不切换回第一个选项卡
【发布时间】:2016-05-18 06:05:14
【问题描述】:

元 -

操作系统:OSX El Capitan 硒版本: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));
        }
}

【问题讨论】:

    标签: selenium selenium-webdriver selenium-grid safari-extension safaridriver


    【解决方案1】:

    你可以使用这段代码来关闭你想关闭的窗口:

    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)的句柄。

    【讨论】:

    • 嘿“”。谢谢你的回答,让我更新你是否适合我的要求
    • @PraveenPavu:当然。厕所
    • org.openqa.selenium.NoSuchWindowException:驱动程序没有聚焦在窗口上。在继续之前,您必须切换到一个窗口。 (警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:3 毫秒
    • @PraveenPavu :您是否将代码中的originalHandle 替换为您要关闭的选项卡的句柄值?
    • 现在出现上述异常,您的代码运行良好......它现在关闭了第二个选项卡,唯一的问题是它不关注第一个选项卡,以便我可以在登录页面上输入凭据。让我试试 driver.switchTo().defaultContent();让你知道
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多