Robot Framework + Sauce 实验室无法识别 Browser Edge 名称

Robot Framework + Sauce labs can't recognize the Browser Edge name

我是运行我在Sauce labs的机器人框架测试,对于chrome/firefox/safari,没问题。但对于 Edge,Sauce labs 无法识别 Edge 浏览器名称。

我尝试使用“edge”,它抱怨。 “配置错误 -- 不支持 OS/browser/version/device 组合:OS:'Windows 10',浏览器:'edge',版本:'97。',设备:'unspecified' “

我尝试使用“MicrosoftEdge”,它抱怨“ValueError:microsoftedge 不是受支持的浏览器。”

Robot framework+sauce lab 的正确 Edge 名称是什么?我的测试用例如下,欢迎任何建议。谢谢

test
   &{SAUCE_OPTIONS}    Create Dictionary    extendedDebugging=${True}
    ...    capturePerformance=${True}
    ...    seleniumVersion=4.0.0
    ...    name=RF_Test
    ...    build='demo'
    &{DESIRED_CAPABILITIES}    Create Dictionary
    ...    browserName=MicrosoftEdge
    ...    platform=Windows 10
    ...    browserVersion=latest
    ...    sauce:options=&{SAUCE_OPTIONS}
    ${remote_url}    Set Variable    https://sauceUserName:sauce_a...@ondemand.us-west-1.saucelabs.com:443/wd/hub
    Open Browser    https://google.com
    ...    browser=${DESIRED_CAPABILITIES['browserName']}
    ...    remote_url=${remote_url}
    ...    desired_capabilities=${desired_capabilities}
    # ...    options=${options}
    Sleep    5s
    Close Browser

我会选择 Edge,如果你尝试过那个,你没有提到。

关于 browserName 示例的文档不清楚。 另外阅读 WebDriver W3C Specification 确实给出了答案。

它没有很好的文档记录,在本地使用时,它可以使用多个值,但它自己标识的值是 msedge

2022-02-21 12:44:53 INFO Selenium    >>> http://127.0.0.1:9515/session | {"capabilities":{"alwaysMatch":{"browserName":"MicrosoftEdge","unhandledPromptBehavior":"ignore","ms:edgeOptions":{}}}}

2022-02-21 12:45:00 INFO Selenium <- {"value":{"capabilities":{"acceptInsecureCerts":false,"browserName":"msedge","browserVersion":"98.0.1108.51","ms:edgeOptions":{"debuggerAddress":"localhost:52338"},"msedge":{"msedgedriverVersion":"98.0.1108.56 (9a336a18eae89157b3c7ea0568a9cbced8ebc3f7)","userDataDir":"/var/folders/fx/nlx77ccs72g808pr1994_xtw0000gn/T/.com.microsoft.edgemac.5dBA6q"},"networkConnectionEnabled":false,"pageLoadStrategy":"normal","platformName":"mac os x","proxy":{},"setWindowRect":true,"strictFileInteractability":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"unhandledPromptBehavior":"ignore","webauthn:extension:credBlob":true,"webauthn:extension:largeBlob":true,"webauthn:virtualAuthenticators":true},"sessionId":"103b9fc98e46a159a3d91effe98e5d33"}}

不过,对于 Sauce Labs,请使用平台配置器来准确查看您应该发送给 Sauce Labs 的内容 — https://saucelabs.com/platform/platform-configurator

代码已更新为使用 Selenium 库而不是 Robot,因此如果您是从头开始创建它,您可以从 node.js + w3c 选项卡中看到预期的内容。

您的特定代码无效,因为您需要使用 platformName 而不是 platform

我不确定这是 Robot Framework 问题还是 Sauce 实验室问题。但我可以做一些技巧让 Edge 与 RF+Sauce 实验室一起工作。 问题发生在关键字打开浏览器中的浏览器参数处。如果只是将此浏览器保留为默认的 firefox,并在 sauce labs 所需的功能中指定“MicrosoftEdge”。测试将按预期 运行 进行。 这个技巧的唯一坏处是当你阅读 RF 日志文件时,它说 “正在通过远程服务器打开浏览器 'firefox' 到基础 url 'https://XX.com'..., 其实是打开Edge浏览器。

test
   &{SAUCE_OPTIONS}    Create Dictionary    
    ...    name=RF_Test
    ...    build='demo'
    &{DESIRED_CAPABILITIES}    Create Dictionary
    ...    browserName=MicrosoftEdge
    ...    platform=Windows 10
    ...    browserVersion=latest
    ...    sauce:options=&{SAUCE_OPTIONS}
    ${remote_url}    Set Variable    https://sauceUserName:sauce_a...@ondemand.us-west-1.saucelabs.com:443/wd/hub
    Open Browser    https://google.com
    ***#...    browser=${DESIRED_CAPABILITIES['browserName']}#get rid of this parameter#***
    ...    remote_url=${remote_url}
    ...    desired_capabilities=${desired_capabilities}
    Sleep    5s
    Close Browser