2016-11-30 113 views
0

經過研究,我發現Control + t不適用於Chrome Webdriver。下面是一些我試過和不工作:如何使用selenium webdriver打開新的chrome選項卡?

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"); 

的代碼是C#

這將是的Java某種程度上相似,只是語法會有所不同。

希望這可以幫助你!

0

您可以使用Java機器人發送Ctrl + T鍵(或者Cmd的+ T如果Mac OS X)和等待新的手柄被打開,例如:

// 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作爲瀏覽器的例子。

相關問題