0

メタ -

OS: 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 ページ [タブ] を閉じても、ほとんどの 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 に答える