【问题标题】:Chrome is allowing insecure pages via WebDriverChrome 允许通过 WebDriver 访问不安全页面
【发布时间】:2018-04-29 03:36:24
【问题描述】:

将 Chrome 62 与 Chrome 驱动程序 2.33 和 WebDriver 3.6.0 结合使用,Chrome 允许使用错误的 SSL 证书加载页面——当页面打开时,它在 URL 栏中显示“不安全”,但页面没有加载-较少的。如果我手动访问该页面,那么我会得到预期的“阻止页面”。

但是,我希望 Chrome 通过 WebDriver 拒绝该页面,就像 Chrome 对人类用户所做的那样。

不幸的是,我找不到其他人报告同样的问题(只是很多人报告了完全相反的问题——即他们希望通过 WebDriver 允许不安全的连接,但 Chrome 一直阻止它们!)。

是否有我可以设置的标志(或者如果 WebDriver 在内部将一个标志传递给 Chrome,则阻止设置)?

const {Builder, Capabilities} = require('selenium-webdriver');

const driver = new Builder()
  .withCapabilities(Capabilities.chrome())
  .build();

driver.get('https://localhost/'); // Uses self-signed certificate.

【问题讨论】:

    标签: javascript selenium selenium-webdriver webdriver selenium-chromedriver


    【解决方案1】:

    默认情况下,chromedriver 接受不受信任的证书。

    要禁用此功能,您必须排除开关ignore-certificate-errors

    var webdriver = require('selenium-webdriver');
    
    var driver = new webdriver.Builder()
      .withCapabilities({
        'browserName': 'chrome',
        'goog:chromeOptions': {
          'args': ['disable-infobars'],
          'excludeSwitches': ['ignore-certificate-errors'],
          'prefs': { }
        }
      }).build();
    
    driver.get("https://self-signed.badssl.com/")
    

    【讨论】:

    • 嗯仍然没有雪茄,至少在通过chromeCapabilities.set('acceptSslCerts', false)设置时是这样的
    • @Lawrence Wagerfield,我检查了chromedriver 的来源,acceptSslCerts 的功能被简单地忽略并始终返回true。另一种方法是排除开关ignore-certificate-errors
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 2014-09-24
    • 2018-10-21
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-11
    相关资源
    最近更新 更多