Selenium webdriver 通过Robot框架更改浏览器功能

Selenium webdriver 通过Robot框架更改浏览器功能,selenium-webdriver,robotframework,Selenium Webdriver,Robotframework,我没有在本地更改IE设置的权限。我编写了一段Java代码,用以下方法更改IEDriver的功能: DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); caps.setCapability( InternetExplorerDriver.INTR

我没有在本地更改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框架中使用SeleniumWebDriver时,我想做同样的事情。我想做这样的事。但我不知道该怎么做

*** 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

非常感谢

在的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

对于来这里寻找机器人框架内解决方案的任何人:

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}

正如帕沃尔·特拉夫尼克所提到的,大卫的答案不再有效。在某个时刻,
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\u session

中的响应,您可以看到这一点。对于其他用户,一些描述可能有助于更好地理解:)我希望该描述现在有用。此解决方案在IEDriverServer 3.4.0版本中工作。当我尝试v。3.9.0它忽略了所需的功能,而功能保持为忽略保护的模式设置:错误请添加一个解释,说明它如何解决问题,而不仅仅是向我们展示一些代码。