You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu虚拟机Selenium Chrome证书弹窗Robot类失效,求替代方案

问题:Linux环境下替代Robot类处理浏览器证书弹窗的方案?

我尝试使用Robot类在浏览器证书弹窗中选择“OK”按钮,该代码在Windows本地运行正常,但在Ubuntu虚拟机上执行时无法触发Enter操作。

核心代码

public void load() {
    setUrl();
    Thread threadNavigation = new Thread() {
        @Override
        public void run() {
            driver.navigate().to(url);

        }
    };

    Thread threadCertificateHandler = new Thread() {
        @Override
        public void run() {
            try {
                Thread.sleep(3000);
                Robot robot = new Robot();
                robot.keyPress(KeyEvent.VK_ENTER);
                robot.delay(2000);
                robot.keyRelease(KeyEvent.VK_ENTER);
                Thread.sleep(3000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };

    // Start the threads.
    threadNavigation.start();
    threadCertificateHandler.start();

    // Wait for them both to finish
    try {
        threadNavigation.join();
        threadCertificateHandler.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

代码说明

使用Selenium访问URL时,页面加载前会弹出证书弹窗。此处采用双线程方案:一个线程用于访问应用URL,另一个线程处理弹窗。

证书弹窗截图

证书弹窗截图

ChromeDriver初始化代码

public void getStandaloneHubNodeServerDriver(String browserType,String platformType, String url) throws MalformedURLException  {
    DesiredCapabilities caps = new DesiredCapabilities();
    logger.log(Level.INFO, () -> "Setting browser address @: " + url);
    ChromeOptions options = new ChromeOptions();
    options.addArguments("start-maximized"); // open Browser in maximized mode
    options.addArguments("disable-infobars"); // disabling infobars
    options.addArguments("--disable-extensions"); // disabling extensions
    options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
    options.addArguments("--no-sandbox"); // Bypass OS security model
    options.setAcceptInsecureCerts(true);
    options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
    options.setExperimentalOption("excludeSwitches",Arrays.asList("disable-popup-blocking"));
    //threadLocalDriver.set(new RemoteWebDriver(new URL(url),options));
    driver = new RemoteWebDriver(new URL(url),options);
    driver.manage().window().maximize();
}

请问Linux环境下是否有可替代Robot类的方案?


内容的提问来源于stack exchange,提问作者RISHI KHANNA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:25:16