如何在空手道 UI 测试中启用 acceptInsecureCerts

Posted

技术标签:

【中文标题】如何在空手道 UI 测试中启用 acceptInsecureCerts【英文标题】:How to enable acceptInsecureCerts on Karate UI test 【发布时间】:2021-10-15 11:50:25 【问题描述】:

我正在尝试为我的网页编写一个空手道 UI 测试,该网页当前具有自签名证书,因此默认情况下被浏览器阻止。 According to the documentation,当 acceptInsecureCerts 参数启用时,应该绕过这个检查。但我找不到将此参数传递给驱动程序的正确语法。这是我的(简化的)功能文件:

Feature: browser automation 1

  Background:
    * def session =  capabilities:  acceptInsecureCerts: true  
    * configure driver =  type: 'chrome', showDriverLog: true, showProcessLog: true, showBrowserLog: true, webDriverSession: '#(session)' 

  Scenario: load demo page
    Given driver 'https://127.0.0.1:8443/demo'
    * waitUntil('document.readyState == "complete"')
    * print 'page loaded'
    * screenshot()
    Then delay(2000).text('body')

当我运行它时,我得到了

13:31:25.237 [nioEventLoopGroup-2-1] DEBUG c.intuit.karate.driver.DriverOptions - << "id":9,"result":"result":"type":"string","value":"Your connection is not private Attackers might be trying to steal your information from ...

【问题讨论】:

【参考方案1】:

等等,chrome 不是基于 webdriver,所以webDriverSession 将不适用。它适用于chromedriver

我进行了快速搜索,我能找到的最好的是:ignore-certificate-errors + headless puppeteer+google cloud

所以不确定这是否有效:

addOptions: ['--ignore-certificate-errors']

请报告您的发现,以便对他人有所帮助!另一个参考是这个,但不确定它是最新的:https://peter.sh/experiments/chromium-command-line-switches

【讨论】:

哇,感谢您的快速回答!这确实对我有用:* configure driver = type: 'chrome', addOptions: [ '--ignore-certificate-errors' ]

以上是关于如何在空手道 UI 测试中启用 acceptInsecureCerts的主要内容,如果未能解决你的问题,请参考以下文章

如何在空手道 UI 自动化框架中截取屏幕截图并将其保存为当前日期和时间 [重复]

如何在现有的 ios 测试项目中启用 xcode 7 UI 测试

如何使用命令行在 Gradle 上运行空手道测试

不知道如何在空手道中验证响应?

如何在空手道框架中运行特定数量的特征文件?

在 TFS Build(.net 和 python 项目)中运行空手道测试