使用selenium2library设置自动下载首选项配置文件

时间:2015-02-17 01:37:02

标签: python selenium selenium-webdriver robotframework

环境:robotframework-selenium2library

我正在寻找selenium2library中的一种方法,通过在FirefoxProfile中设置首选项来自动下载文件,因为这是我能找到的解决方案。 但是,我似乎无法使用我在selenium webdriver中列出的方式将首选项配置文件导入selenium2library中的浏览器。

使用selenium webdriver:
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2) fp.set_preference("browser.download.manager.showWhenStarting",False) fp.set_preference("browser.download.dir",getcwd()) fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)

我可以在selenium2library中找到open_browser(),但它只会占用一个目录而不是像selenium webdriver那样使用首选项配置文件的灵活性。

Selenium2Library:
open_browser(self, url, browser='firefox', alias=None,remote_url=False, desired_capabilities=None,ff_profile_dir=None)

如果我能在机器人框架 - selenium2library中以与selenium webdriver相同的方式对任何人有所了解吗?

我在Github上发现了一个关于此事的封闭问题 https://github.com/rtomac/robotframework-selenium2library/issues/18

但是,似乎使用配置文件目录而不是可以灵活地设置firefox配置文件的首选项。

谢谢!!

1 个答案:

答案 0 :(得分:1)

  

我可以在selenium2library中找到open_browser(),但它只能吃一个   目录

没有。它也喜欢偏好。长话故事是这样的:

我不太确定你是如何使用robotframework-selenium2library的。我想说,常用用法是运行导入selenium2library的机器人框架测试用例(即简单的UTF-8文本文件)。您的问题的可能解决方案将如下所示(不言而喻,所有变量都应在*** Variables ***下面定义):

*** Settings ***
Library           Selenium2Library
Library           Collections

*** Variables ***

*** Test Cases ***
MyTestCase
    ${preferences} =    Create Dictionary   browser.download.folderList  2  browser.download.manager.showWhenStarting  False   # and so on ....
    Open Browser    <yourURL>    desired_capabilities=${preferences}

但是,您的问题表明您打算直接使用selenium2library提供的python函数(如您在问题中提到的open_browser)。在这种情况下,您需要做的就是调用适当设置参数desired_capabilities的函数。

请注意该参数的文档( 完整代码可以找到here):

  

如果为remote指定值,也可以指定   &#39; desired_capabilities&#39;这是表单中的字符串   key1:val1,key2:val2,用于指定desired_capabilities   到远程服务器。这对于执行指定a等操作非常有用   用于Internet Explorer的代理服务器或用于指定浏览器和操作系统if   你使用saucelabs.com。 &#39; desired_capabilities&#39;也可以是   dictonary(用&#39;创建词典&#39;创建)允许更复杂   配置。