0

私のスクリプトでは、ブラウザーのプライベート ウィンドウを開いて、Web サイトのコンテンツを確認しています。以下はサンプルコードです。

if(osName.contains("Mac")){
    new Actions(tester.getInternalDriver()).keyDown(Keys.COMMAND).keyDown(Keys.SHIFT).sendKeys("P").keyUp(Keys.COMMAND).keyUp(Keys.SHIFT).build().perform();
}
else if (osName.contains("Win") || osName.contains("nux")){
    String pvtWin = Keys.chord(Keys.LEFT_CONTROL,Keys.SHIFT,"p");
     tester.getInternalDriver().findElement(By.cssSelector("body")).sendKeys(pvtWin);
}

これらのテスト ケースをローカル (Mac) マシンで実行したとき、または Jenkins が Windows サーバーでローカルに実行したときに、コードは正常に動作していました。しかし、ブラウザスタック仮想マシンでスクリプトを実行しているときに直面している課題です。私のローカル マシンは Mac です。Windows (仮想) マシンで何かを実行しようとすると、キーボードの COMMAND ボタンを探してテスト ケースが失敗します。任意のプラットフォームおよび任意のブラウザで動作する新しいプライベート ウィンドウを開くより良い方法 (javascript?) はありますか? 新しいタブ、新しいウィンドウ、新しいプライベート ウィンドウを開くオプションを探しています。JavaScript には、ブラウザーの動作をオーバーライドするための制限があることを知っています。

4

1 に答える 1

0

次の JavaScript を実行して、Selenium テストで新しいウィンドウを開くことができます。

JavascriptExecutor js = null;
 if (driver instanceof JavascriptExecutor) 
js = (JavascriptExecutor)driver;
String scr = "window.open('https://www.google.com','_blank');";
js.executeScript(scr);

とはいえ、テストで新しいウィンドウを開きたい特定の理由はありますか?

于 2015-07-01T12:10:56.103 に答える