2016-11-30 13 views
0

調査の結果、Control + tはChromeウェブドライブでは機能しないことが判明しました。以下は、私が試したし、うまくいかなかったものもある。selenium webdriverを使用して新しいクロムタブを開く方法は?

String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t"); 
    driver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab); 
    driver.get("www.facebook.com"); 

WebElement element = driver.findElement(By.linkText("Gmail")); 
    Actions actionOpenLinkInNewTab = new Actions(driver); 
    actionOpenLinkInNewTab.moveToElement(element) 
          .keyDown(Keys.COMMAND) 
          .keyDown(Keys.SHIFT) 
          .click(element) 
          .keyUp(Keys.COMMAND) 
          .keyUp(Keys.SHIFT) 
          .perform(); 

    ArrayList tabs = new ArrayList (driver.getWindowHandles()); 
    driver.switchTo().window(tabs.get(1)); 
    driver.get("http://www.yahoo.com"); 
    driver.close(); 

    driver.switchTo().window(tabs.get(0)); 
    driver.get("http://www.yahoo.com"); 

    driver.close(); 

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles()); 
    driver.switchTo().window(tabs.get(1)); //switches to new tab 
    driver.get("https://www.facebook.com"); 
} 

この周りをステップすることができますのいずれかでしたか?

利用ウェイター:タブ間の新しいタブ&スイッチを開くために

答えて

1

C#

このコードを使用。

タブインデックスは最初のタブでは0から始まります。

var body = Waiter.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.TagName("body"))).FirstOrDefault(); 
body.SendKeys(Keys.Control + 't'); 
var tabs = GlobalDriver.WindowHandles; 
GlobalDriver.SwitchTo().Window(tabs[1]); 
GlobalDriver.Navigate().GoToUrl("Url"); 

コードは、それがのJavaで何とか似ていますにC#

で、ちょうど構文が異なることになります。

希望すると、これが役立ちます。

0

あなたは(MAC OS X場合またはCmdを+のT)はCtrl + tを送信するためにJavaのロボットを使用することができ、例えば、オープンする新しいハンドルを待つ:

// Open URL in default tab 
driver.get("https://wikipedia.org/"); 

// If Mac OS X, the key combination is CMD+t, otherwise is CONTROL+t 
int vkControl = IS_OS_MAC ? KeyEvent.VK_META : KeyEvent.VK_CONTROL; 
Robot robot = new Robot(); 
robot.keyPress(vkControl); 
robot.keyPress(KeyEvent.VK_T); 
robot.keyRelease(vkControl); 
robot.keyRelease(KeyEvent.VK_T); 

// Wait up to 5 seconds to the second tab to be opened 
WebDriverWait wait = new WebDriverWait(driver, 5); 
wait.until(ExpectedConditions.numberOfWindowsToBe(2)); 

// Switch to new tab 
List<String> windowHandles = new ArrayList<>(driver.getWindowHandles()); 
System.err.println(windowHandles); 
driver.switchTo().window(windowHandles.get(1)); 

// Open other URL in second tab 
driver.get("https://google.com/"); 

Hereあなたが実行していますブラウザとしてChromeを使用している例

関連する問題