簡體   English   中英

selenium headless chrome java忽略ssl錯誤

[英]selenium headless chrome java ignore ssl errors

在unix中使用java進行Selenium無頭chrome測試會返回空頁源

<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>

這是由於訪問安全的http(https)網站。

有沒有辦法忽略ssl證書問題? 請讓我知道如何忽略它。

Selenium版本3.7.1..java版本1.8.0.144 chrome驅動程序版本2.33 Chrome版本62+

我嘗試了下面的選項..但它似乎不起作用。

1. ChromeOptions options = new ChromeOptions();
            options.setAcceptInsecureCerts(true);
            options.setHeadless(true);DesiredCapabilities capabilities = 
   DesiredCapabilities.chrome();
                capabilities.setCapability("chrome.switches", Arrays.asList("--
                ignore-certificate-errors,--web-security=false,--ssl-
                protocol=any,--ignore-ssl-errors=true"));
   capabilities.setCapability(ChromeOptions.CAPABILITY, options);
   driver = new ChromeDriver(capabilities);

2. DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);
        capabilities.setCapability (CapabilityType.ACCEPT_INSECURE_CERTS, true);
        capabilities.setCapability(ChromeOptions.CAPABILITY, options);
   driver = new ChromeDriver(capabilities);

我是以正確的方式做到這一點的嗎? 讓我知道讓它工作的訣竅

提前致謝

完整代碼:

WebDriver driver = null;

        try {

            String filePath = "Path to driver";
            System.setProperty("webdriver.chrome.driver", filePath);

            ChromeOptions options = new ChromeOptions();
            options.addArguments("--headless");
            options.addArguments("--no-sandbox");
            options.setAcceptInsecureCerts(true);
            options.addArguments("test-type");

            String[] switches = {"--ignore-certificate-errors"};

            DesiredCapabilities capabilities = DesiredCapabilities.chrome();
            capabilities.setCapability("chrome.switches", Arrays.asList(switches));
            capabilities.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);
            capabilities.setCapability(ChromeOptions.CAPABILITY, options);

            driver = new ChromeDriver(capabilities);
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            driver.get("https://meta.stackexchange.com");
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            System.out.println("PAGE SOURCE : \n" + driver.getPageSource());

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            driver.close();
            driver.quit();
        }

現在您可以在選項中添加功能。 請嘗試以下方法:

        ChromeOptions options = new ChromeOptions();
        options.addArguments("--disable-dev-shm-usage");
        options.addArguments("--no-sandbox");
        options.addArguments("--headless", "--window-size=1920,1200", "--ignore-certificate-errors");
        options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        options.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);
        driver = new ChromeDriver(options);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM