java
  • selenium
  • selenium-webdriver
  • 2017-09-13 20 views 2 likes 
    2

    リンクをCtrl +クリックして新しいタブで開くようにしようとしています。これは、クロム58で正常に動作している以下のコード見つけてください:Selenium WebdriverでCtrl +クリックの組み合わせを使用して新しいタブを開く

    action.keyDown(Keys.CONTROL).click(driver.findElement(By.xpath 
    ("//section[@class='filmStrip__basic']//a[text()='En savoir 
    plus']"))).keyUp(Keys.CONTROL).build().perform(); 
    

    を私はIE、FirefoxとSafariの上で同じコードを使用しますが、次のエラーを取得しています:

    Firefoxの54:リンクを取得しています同じタブで開きます。 IE 11:例外をaction.keyDown-認識できないコマンドにいずれかのブラウザに関連

    ヘルプをも喜ばれます。コントロールは、次の行 サファリに移動します。..何も起こって。私もそれを持っていたし、私はこの回避策を見つけるまで便利な何かを見つけることができませんでした問題については

    JavascriptExecutor jse = (JavascriptExecutor) driver; 
    jse.executeScript("window.open('','_blank');"); 
    

    おかげ

    答えて

    1

    もう一つの方法は、javascriptのエグゼキュータを使用することです。 私も試してみました:solution with ctrl + enter

    +0

    私もハイパーリンクの機能をテストします。したがって、実際にはリンクをクリックして開く必要があります。 –

    +0

    なぜ「クリック」を使用しないのですか? – Edwin

    +0

    クリックすると同じタブで開くようになります。私は一度に全体の流れをテストしたい。ありがとう –

    2

    あなたは<a>タグ内にあるリンクをクリックしようとしているとして、あなたはlinkTextロケータを使用することができます代わりにxpathの。ここでのサンプルコードは、のURLを開き、Page Titleを確認し、Actionsクラスを使用してGmailリンクをクリックしてhttps://accounts.google.comを新しいタブで開きます。

    String URL="http://www.google.com"; 
    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe"); 
    WebDriver driver = new FirefoxDriver(); 
    driver.get(URL); 
    System.out.println("Page Title is : "+driver.getTitle()); 
    WebElement link = driver.findElement(By.linkText("Gmail")); 
    Actions newTab = new Actions(driver); 
    newTab.keyDown(Keys.CONTROL).click(link).keyUp(Keys.CONTROL).build().perform(); 
    
    +0

    うまくいきます。 :) –

    1

    この方法を試してみてください....

    // specify chromedriver.exe directory path and replace in "driverPath" 
    
          String driverPath = "C:/Users......"; 
          WebDriver driver; 
          System.setProperty("webdriver.chrome.driver", driverPath + "chromedriver.exe"); 
          driver = new ChromeDriver(); 
    
          System.out.println("lanuching 1st url in tab1"); 
    
          driver.navigate().to(
            "https://amazon.com"); 
    
          System.out.println("lanuched 1st url in tab1"); 
          Thread.sleep(30000); 
        ((JavascriptExecutor) driver).executeScript(
            "window.open('http://ebay.com');"); 
          Thread.sleep(20000); 
          Set<String> allwh = driver.getWindowHandles(); 
          System.out.println(allwh.size()); 
          for (String v : allwh) { 
           System.out.println(v); 
           driver.switchTo().window(v); 
           String title = driver.getTitle(); 
           System.out.println("2nd url in tab2" + title); 
    
    関連する問題