使用Selenium-Java的无头Chrome在浏览器的常规UI模式下运行测试

问题描述

我正在尝试使用Chrome浏览器,Selenium和Java在无头模式下运行我的应用程序。但是它会打开一个新的chrome实例,并以正常的UI模式开始运行脚本(可以看到执行情况)

代码或浏览器兼容性是否有问题

OS-Windows 10, Chrome版本-85.0.4183.121

下面是我的代码-

package XYZ;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Test{
    public static void main(String args[]) {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\TestUser\\Desktop\\SeleniumWorkspace\\ABC\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("headless");
        options.addArguments("window-size=1400,800");       
        options.addArguments("disable-gpu")
        //options.addArguments("--headless","--disable-gpu","--window-size=1400,800","--ignore-certificate-errors");
        WebDriver driver = new ChromeDriver(options);   
        driver.get("https://www.google.com");
        System.out.println(driver.getcurrenturl());
    }
}

解决方法

我可以看到您在代码中传递参数之前缺少了“-” 。以下是在运行自动案例时使用无头chrome的正确代码:

    package XYZ;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Test{
    public static void main(String args[]) {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\TestUser\\Desktop\\SeleniumWorkspace\\ABC\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--headless");     
        options.addArguments("--disable-gpu");
        options.addArguments("--window-size=1400,800");  
        WebDriver driver = new ChromeDriver(options);   
        driver.get("https://www.google.com");
        System.out.println(driver.getCurrentUrl());
    }
}

对我来说,这很好。我希望这能解决您的问题。