2016-11-30 76 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作为浏览器的例子。

相关问题