通过 Robot Framework 更改浏览器功能
Posted
技术标签:
【中文标题】通过 Robot Framework 更改浏览器功能【英文标题】:Change Browser Capabilities through Robot Framework 【发布时间】:2015-09-12 13:13:09 【问题描述】:我没有权限在本地更改 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
非常感谢!
【问题讨论】:
【参考方案1】:在 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
【讨论】:
一些描述可能有助于其他用户更好地理解:) 我希望现在的描述对您有所帮助。 此解决方案适用于版本 IEDriverServer 3.4.0。当我尝试 v. 3.9.0 时,它会忽略 DesiredCapabilities 并且 Capabilities 保持为 ignoreProtectedModeSettings: False【参考方案2】:对于任何来这里寻找机器人框架内this problem 的解决方案的人:
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
【讨论】:
请补充说明它是如何解决问题的,而不是只给我们一些代码。【参考方案3】:正如 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
中的响应,您可以看到这一点。
【讨论】:
以上是关于通过 Robot Framework 更改浏览器功能的主要内容,如果未能解决你的问题,请参考以下文章
使用 Robot Framework Test 在浏览器中上传文件
Robot Framework 通过pyodbc连接Mysql
您如何在 Robot Framework 中编写具有多个标识符的动态元素?