【问题标题】:How to resolve ssl certificate errors for test automation in robot framework如何解决机器人框架中测试自动化的 ssl 证书错误
【发布时间】:2020-05-04 05:50:47
【问题描述】:

在通过机器人框架运行自动化测试时,我的 Web 应用程序出现 ssl 证书错误。我在下面的代码中尝试了不同的 chrome 选项,但没有一个在没有布尔值的情况下也能正常工作。

${list} =  Create List      --unsafely-treat-insecure-origin-as-secure=True
${args} =  Create Dictionary     args=${list}
${desired caps} =     Create Dictionary     chromeOptions=${args}
open browser  about:blank          ${BROWSER}  desired_capabilities=${desired_caps}

提前谢谢你

【问题讨论】:

    标签: python-3.x ssl-certificate robotframework


    【解决方案1】:

    Firefox 和 Chrome(可能还有其他,未测试)都支持 --ignore-certificate-errors 选项,并且 Open Browser 关键字支持将选项传递给浏览器,请参阅 https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#Open%20Browser

    *** Settings ***
    Library    SeleniumLibrary
    
    
    *** Test Cases ***
    Foo
        Open Browser    https://expired.badssl.com/    firefox    options=add_argument("--ignore-certificate-errors")
        Capture Page Screenshot
        [Teardown]    Close All Browsers
    

    【讨论】:

    • @Harri,上述选项 arg 在 SeleniumLibrary 中有效,但 Selenium2Library 呢? robotframework.org/Selenium2Library/… 那里不再支持 options 关键字。这种情况该怎么办?
    • 简而言之,您需要使用 Create Webdriver 关键字而不是 Open Browser。像这样的东西(根本没有测试):*** Settings *** Library Selenium2Library Library Collections *** Test Cases *** Foobar ${list} Create List --ignore-certificate-errors ${args} Create Dictionary args=${list} Create Webdriver Chrome ${args} Go To https://expired.badssl.com/ [Teardown] Close all Browsers 编辑:格式搞砸了,但你明白了:)
    【解决方案2】:

    您可以使用以下语句来避免 chrome 浏览器中的证书问题(格式存在一些问题,所以我按顺序标记语句):

    ${chrome_options}=    Evaluate sys.modules['selenium.webdriver'].ChromeOptions()    sys
    Call Method    ${chrome_options}    add_argument    --ignore-certificate-errors
    Create Webdriver    Chrome    chrome_options=${chrome_options}
    

    【讨论】:

      【解决方案3】:

      首先,如果你在 linux 上运行命令

      pip list | grep robotframework

      如果你在 windows 打开 cmd 并列出所有使用 pip list 安装的软件包,检查是否 robotframework 4.1 。如果机器人框架的版本低于 4.1,你必须将软件包升级到任何 4.1 或更高版本。 使用

      sudo pip3 install robotframework --upgrade

      现在您的脚本应该可以使用了

      options=add_argument("--ignore-certificate-errors")

      【讨论】:

        猜你喜欢
        • 2020-06-14
        • 2018-01-29
        • 2018-11-20
        • 1970-01-01
        • 2016-12-07
        • 2017-08-15
        • 2021-02-23
        • 1970-01-01
        • 2020-09-14
        相关资源
        最近更新 更多