如何强制Selenium在新窗口中打开链接?

时间:2013-10-03 04:58:44

标签: java google-chrome selenium

我需要在新的Chrome窗口中打开网页上的链接。已有question 但这似乎是RC。我试过了 driver.getUserWindow().open("http....."); 但它没有用。可能有办法迫使Chrome为所有链接执行此操作吗?理想情况下,我想知道如何强制驱动程序在新窗口中打开链接。 (我正在使用java和OS Windows 7

3 个答案:

答案 0 :(得分:6)

您可以使用Actions类来执行此操作。

Actions act = new Actions(driver);
WebElement onElement = Your element on which action has to be performed;
act.contextClick(onElement).perform();
act.sendKeys("w").perform();  // If you want the link to open in new tab then use T instead of w

希望这会有所帮助。快乐的编码。

答案 1 :(得分:2)

我不知道您使用的是哪种语言/操作系统,但是这里是如何使用Ruby和WebDriver在OS X的新窗口中打开链接:

link = driver.find_element(:tag_name => 'a')
action = driver.action
key = :command # replace with :control on Win/Linux
action.key_down(key)
action.click(link)
action.key_up(key)
action.perform

这将在新标签中打开链接。如果您需要新窗口,则应使用:shift键。

您还可以覆盖元素的click方法,因此它始终在新窗口中打开链接。

答案 2 :(得分:0)

您可以使用JS执行器方法从新标签页打开链接

public void openFromNewTab(WebElement element) {

    ((JavascriptExecutor) driver).executeScript("window.open('" + element.getAttribute("href") + "','_blank');");
}