Selenium Chrome错误:您使用的是不受支持的命令行标志: - ignore-certifcate-errors

时间:2018-03-03 15:12:19

标签: java selenium web-scraping google-chrome-devtools selenium-chromedriver

好的,所以我正在学习Web Scraping并且对Java感到满意,因此我选择了Jsoup,它是一个Web报废库。我计划废除A CodeChef contest problem(这只是一个编码问题),但我发现很难删除所有显示的内容,这是不可能的,因为大多数都是动态源。因此,我使用selenium来呈现JavaScript并获取简单的HTML页面,然后将其提供给JSOUP。

所以我尝试打印渲染的HTML页面只是为了验证,但是当我运行代码时出现以下错误:

我的代码:

    File f = new File("<Path to chromedriver.exe>");
    System.setProperty("webdriver.chrome.driver", f.getAbsolutePath());
    WebDriver driver = new ChromeDriver();
    driver.get("https://www.codechef.com/problems/FRGTNLNG");
    System.out.println(driver.getPageSource());

错误(在chrome中):

You are using an unsupported command-line flag: --ignore-certifcate-errors. Stability and security will suffer

我尝试了Chrome Error: You are using an unsupported command-line flag: --ignore-certifcate-errors. Stability and security will suffer的以下解决方案,我安装了最新的chromedriver,但它没有解决我的错误。

我还尝试按照Pass driver ChromeOptions and DesiredCapabilities?添加所需功能(现已弃用)和ChromeOptions,但同样的错误仍然存​​在。

提前致谢!

1 个答案:

答案 0 :(得分:2)

错误说明了一切:

You are using an unsupported command-line flag: --ignore-certifcate-errors. Stability and security will suffer

根据最佳编程惯例,使用ChromeOptions类打开 Chrome浏览器 最大化禁用信息栏和< em>禁用扩展程序,如下所示:

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
options.addArguments("--test-type");
options.addArguments("--ignore-certificate-errors");
WebDriver driver =  new ChromeDriver(options);
driver.get("https://www.google.co.in");

此外,请执行以下步骤:

  • 将JDK更新为最新版本JDK 8u162
  • Selenium-Java客户端升级到v3.10.0
  • ChromeDriver 升级到最新版本ChromeDriver v2.35
  • 清理IDE中的项目空间
  • 运行CCleaner工具以清除所有OS系统杂务。
  • 如果您的基本 Web浏览器版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和发布的 Web浏览器版本。< / LI>
  • 进行系统重启
  • 执行 @Test