2016-12-23 6 views
0

コピーリンクをクリックすると、URLがコピーされたことを意味し、新しいタブを開き、コピーしたURLをselenium webdriverを使用して新しいタブに貼り付けます。 以下のコードはMacではなくWindowsで動作しています。 私はこのコードをMacシステムで使用すると、いくつかのJavaソフトウェアアイコンがタスクバーに表示されます。参照用に添付されたスクリーンショット。 Java software icon in right corner and application screenshotError in consoleMacで新しいタブ機能が動作しない

マイコード:

String element=Util.OR_VF_MY_ACCOUNT_PAGE.getProperty("myAccountPageCopyUrlLinkInWishList"); 
      $(element).click(); 

    winHandleBefore= getDriver().getWindowHandle(); 
      Set<String> handles = getDriver().getWindowHandles(); 
      //getDriver().findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t"); 
      robot.keyPress(KeyEvent.VK_CONTROL); 
      robot.keyPress(KeyEvent.VK_T); 
      robot.keyRelease(KeyEvent.VK_T); 
      robot.keyRelease(KeyEvent.VK_CONTROL); 
      for(String windowHandle : handles) 
      { 
       if(!windowHandle.equals(winHandleBefore)) 
       { 
        getDriver().switchTo().window(windowHandle); 
       } 
      } 
      Util.pause(4); 
      robot.keyPress(KeyEvent.VK_CONTROL); 
      robot.keyPress(KeyEvent.VK_V); 
      robot.keyRelease(KeyEvent.VK_V); 
      robot.keyRelease(KeyEvent.VK_CONTROL); 
      Util.pause(4); 
      robot.keyPress(KeyEvent.VK_ENTER); 
      robot.keyRelease(KeyEvent.VK_ENTER); 
      Util.pause(4); 
+0

誤って制御していないので追加しました。 Macではコマンドを使用する必要があります。この問題を解決してください – ksyam

+0

これは正しいコードではありませんか?その場合は、混乱を避けるために[edit](http://stackoverflow.com/posts/41298918/edit)ご質問ください。 – n247s

+0

Javaコントロールパネルアイコンが表示されます。誰でもこれを助けることができます。 – ksyam

答えて

0

私はそのためにマック/ UnixのOS上で何の "コントロール" キーがないと思います。 Mac/unixシステムではなく "Command"キーを使用してみてください。ここで

は/あなたが新しいタブを開くことができますJavaScriptを使用して「コマンド」に自動的に

編集にあなたは「Ctrlキー」から変更できるように動作しているシステムをチェックする方法についてpost

ですウィンドウはブラウザの実装に応じて異なります。同じWebDriverインスタンスを使って新しいウィンドウにアクセスできるかどうかはわかりません(私はatmからテストできません)。 しかし、基本的にこのスニピットはほとんどのドライバーで動作するはずです。

// driver is your WebDriver instance 
if (driver instanceof JavascriptExecutor) { 
    ((JavascriptExecutor)driver).executeScript(
    "var win = window.open('http://www.example.com/', '_blank');" + 
    "if (win) {" + 
    " //Browser has allowed it to be opened" + 
    " win.focus();" + 
    "} else {" + 
    " //Browser has blocked it" + 
    " alert('new tab/window couldn't be opened');" + 
    "}"); 
} else { 
    throw new IllegalStateException("This driver does not support JavaScript!"); 
} 
+0

ご意見ありがとうございます。私はMac上でコマンドキーを追加しました。しかし問題は、私はリンクをクリックせずに新しいタブを開く必要があります、ちょうど私はURLをコピーしてmac.Forのコードを使用して新しいタブに貼り付ける必要があります私はロボットコードを使用していましたが、タスクバーに来る。 – ksyam

+0

誰かが私がこれを待っているので、この質問のためにrplyを与えることができます。私に教えてください – ksyam

+0

@ksyam残念ながら、セレンの新しいタブを開く公式な方法はありません。ほとんどの場合、ページの 'body'要素に(またはあなたと同じように)ロボットのように( 'ctrl'/'command')+ 't'を送信しようとします。どちらの方法でも100%の耐故障性ではありません。新しいタブ/ウィンドウを開く1つの方法(ブラウザの種類によって異なる)はjavascriptを使用しています。あなたのブラウザで実行できるサンプルスクリプトで私の答えを編集してください。 – n247s

関連する問題