首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >selenium无头chrome java忽略ssl错误

selenium无头chrome java忽略ssl错误
EN

Stack Overflow用户
提问于 2017-12-11 14:42:02
回答 1查看 3.8K关注 0票数 4

在unix中使用java进行Selenium无头chrome测试时,返回的页面源代码为

代码语言:javascript
复制
<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+

我尝试了一下options below..but,它似乎不起作用。

代码语言:javascript
复制
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);

我做这件事的方式正确吗?让我知道让它工作的诀窍

提前感谢

完整代码:

代码语言:javascript
复制
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();
        }
EN

回答 1

Stack Overflow用户

发布于 2018-07-28 07:37:11

现在,您可以在选项中添加功能。请尝试以下操作:

代码语言:javascript
复制
        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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47747654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档