3

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

4

3 回答 3

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

希望这可以帮助。快乐编码。

于 2013-10-03T06:39:00.087 回答
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

这将在新选项卡中打开链接。如果你需要新窗口,你应该使用:shiftkey。

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

于 2013-10-03T06:12:54.997 回答
0

您可以使用 JS 执行器方法从新选项卡打开链接

public void openFromNewTab(WebElement element) {

    ((JavascriptExecutor) driver).executeScript("window.open('" + element.getAttribute("href") + "','_blank');");
}
于 2020-12-02T10:19:23.320 回答