繁体   English   中英

通过 Robot Framework 更改浏览器功能

[英]Change Browser Capabilities through Robot Framework

我没有在本地更改 IE 设置的权限。 我编写了一个 Java 代码来使用以下方法更改 IEDriver 的功能:

 DesiredCapabilities caps = DesiredCapabilities.internetExplorer();    caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        caps.setCapability(
                InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
                true);

我想在 Robot Framework 中使用 selenium webdriver 时做同样的事情。 我想做这样的事情。 但我不知道正确的方法。

*** Keywords ***
Test Browser
    ${options}= Evaluate  sys.modules['selenium.webdriver'].DesiredCapabilities.INTERNETEXPLORER sys,selenium.webdriver
    Call Method    ${options}    add_argument      INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS:True    
    Create WebDriver  Internet Explorer ie_options=${options}

Open Browser To Login Page
    Open Browser    ${LOGIN URL}    ${BROWSER}   
    Maximize Browser Window
    Set Selenium Speed    ${DELAY}
    Login Page Should Be Open

非常感谢!

DesiredCapabilities的 Selenium 文档中,列出了可配置的属性。 所需的属性是 ignoreProtectedModeSettings 必须设置为 True

${dc}   Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.INTERNETEXPLORER  sys, selenium.webdriver
Set To Dictionary   ${dc}   ignoreProtectedModeSettings ${True}
Open Browser    www.google.com  ie  desired_capabilitie=${dc}

${s2l}= Get Library Instance    Selenium2Library
Log Dictionary  ${s2l._current_browser().capabilities}  # actual capabilities

对于来到这里寻求在 Robot Framew 中解决 此问题的任何人:

Set Chrome Desired Capabilities
    [Documentation]  Create the desired capabilities object with which to instantiate the Chrome browser.
    ${dc}                       Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME  sys, selenium.webdriver
    ${experimental_options}     Create Dictionary      useAutomationExtension   ${False}
    Set To Dictionary           ${dc}       chromeOptions   ${experimental_options}
    Set Global Variable         ${DESIRED_CAPABILITIES}  ${dc}

正如 Pavol Travnik 所提到的,大卫的回答不再有效。 在某些时候, ignoreProtectedModeSettings键被放置在功能字典中的se:ieOptions字典中。 以下是适用于较新版本 IEDriverServer 的代码:

${ie_dc} =      Evaluate  
    ...         sys.modules['selenium.webdriver'].DesiredCapabilities.INTERNETEXPLORER 
    ...         sys, selenium.webdriver
${ieOptions} =  Create Dictionary  ignoreProtectedModeSettings=${True}
Set To Dictionary   ${ie_dc}  se:ieOptions  ${ieOptions}
Open Browser    ${url}  ie  desired_capabilities=${ie_dc}

如果您调试 Selenium 的 Python 库,特别是 webdriver/remote/webdriver.py 并查看start_session中的响应,您可以看到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM