当前位置: 首页 > 知识库问答 >
问题:

无法在浏览器中打开新标签。它在同一个选项卡中加载第二个url

何德寿
2023-03-14

我试图在浏览器中打开一个新标签。但是它在同一个标签中打开了第二个URL。

代码:

import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeFlock {

    public static void main(String[] args) throws Exception {       WebDriver driver;       System.setProperty("webdriver.chrome.driver", "C:\\Automation\\chromedriver_win32\\chromedriver.exe");      driver = new ChromeDriver();
        driver.manage().window().maximize();

        String baseUrl = "http://www.google.co.uk/";
        driver.get(baseUrl);

        Thread.sleep(3000);

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

        driver.get("http://www.facebook.com");  }

}

共有3个答案

江仲渊
2023-03-14

您可以使用键盘模拟:

new Actions(driver).sendKeys(Keys.Control + 'w').build.perform(); // or + 't'
driver.get("http://www.facebook.com");

或者使用JavaScriptExecutor:

((JavascriptExecutor) driver).ExecuteScript("window.open('http://www.facebook.com','_blank');");
米承嗣
2023-03-14

也许您没有切换到新选项卡,这导致仅在父选项卡上启动第二个链接。

您可以使用Robot类通过模拟按下键盘的Ctrl t键来打开一个新标签。然后,您需要使用driver.switchTo()命令切换到新选项卡。

有关代码片段和详细信息,请检查此在Selenium中打开新选项卡

司徒锐进
2023-03-14

按如下方式使用JavascriptExecutor:

((JavascriptExecutor) driver).executeScript("window.open('http://www.facebook.com');");
 类似资料: