【问题标题】:How to bypass the message-"your connection is not private" on non-secure page using Selenium?如何使用 Selenium 在非安全页面上绕过消息“您的连接不是私有的”?
【发布时间】:2020-02-16 09:37:56
【问题描述】:

我正在尝试与“您的连接不是私密的”页面进行交互。

使用options.add_argument('--ignore-certificate-errors') 的解决方案没有帮助有两个原因:

  1. 我正在使用一个已经打开的窗口。
  2. 即使我使用的是“硒打开的窗口”,脚本也会不停地运行,而我要解决的问题是当我的浏览器与 splunk 仪表板断开连接并且我希望它再次自动连接时(它会弹出私人连接窗口)。

如何点击“高级”,然后点击“继续使用 splunk_server(不安全)?

【问题讨论】:

    标签: python selenium connection


    【解决方案1】:

    对于铬:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.add_argument('--ignore-ssl-errors=yes')
    options.add_argument('--ignore-certificate-errors')
    driver = webdriver.Chrome(options=options)
    

    如果不行,那么这个:

    from selenium import webdriver
    from selenium.webdriver import DesiredCapabilities
    
    options = webdriver.ChromeOptions()
    options.add_argument('--allow-insecure-localhost') # differ on driver version. can ignore. 
    caps = options.to_capabilities()
    caps["acceptInsecureCerts"] = True
    driver = webdriver.Chrome(desired_capabilities=caps)
    

    对于火狐:

    from selenium import webdriver
    
    profile = webdriver.FirefoxProfile()
    profile.accept_untrusted_certs = True
    
    driver = webdriver.Firefox(firefox_profile=profile)
    driver.get('https://cacert.org/')
    
    driver.close()
    

    如果不行,那么这个:

    capabilities = webdriver.DesiredCapabilities().FIREFOX
    capabilities['acceptSslCerts'] = True
    driver = webdriver.Firefox(capabilities=capabilities)
    driver.get('https://cacert.org/')
    driver.close()
    

    最重要的是为我工作!

    【讨论】:

    • 您是否碰巧知道为 Edge (Chromium) 执行此操作的方法?
    • @schneida 抱歉,我没有使用 edge,所以无法判断。但我认为由于 Edge 使用 chromium 引擎,所以 chrome 浏览器的程序应该可以工作。
    • 我在想 Edge 会使用与 chromium 相同的参数,但我试过了,但没有奏效。我最终使用 Selenium 自动化本身来单击隐私页面上的继续按钮......工作正常
    • edgeOptions = new EdgeOptions().merge(chromeOptions);driver = new EdgeDriver(edgeOptions); 这样的作品..你可以试试。
    • Chrome 的代码不是有效的 python 代码
    【解决方案2】:

    这就是我处理这个问题的方式:

    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.CapabilityType;
    
    ChromeOptions capability = new ChromeOptions();
    capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    capability.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS,true);
    
    WebDriver driver = new ChromeDriver(capability);
    

    【讨论】:

      【解决方案3】:

      这个镀铬选项对我来说是灵丹妙药:

       chromeOptions.addArguments("--allow-running-insecure-content");
      

      如果您需要更多,请打开 chrome 并粘贴此 URL:

              chrome://flags/
      

      您会发现所有选项及其对 chrome 的影响。

      【讨论】:

        【解决方案4】:

        使用 Python Chrome Selenium Webdriver 的以下 2 个解决方案中的任何一个都适合我:

        from selenium import webdriver
        from selenium.webdriver import DesiredCapabilities
        
        capabilities = DesiredCapabilities.CHROME.copy()
        capabilities["acceptInsecureCerts"] = True
        driver = webdriver.Chrome(desired_capabilities=capabilities)
        

        并接受解决方案:

        from selenium import webdriver
        
        options = webdriver.ChromeOptions()
        options.add_argument('--ignore-ssl-errors=yes')
        options.add_argument('--ignore-certificate-errors')
        driver = webdriver.Chrome(options=options)
        

        【讨论】:

          猜你喜欢
          • 2017-02-20
          • 2018-10-23
          • 1970-01-01
          • 2020-12-11
          • 2017-05-08
          • 2010-12-07
          • 1970-01-01
          • 2022-06-10
          • 1970-01-01
          相关资源
          最近更新 更多