强制selenium使用便携式firefox应用程序

时间:2014-03-10 00:05:51

标签: python firefox selenium robotframework

我已经在机器上安装了firefox 14并且有firefox 可移植版本25.0.1,我在那里运行网站测试。

由于我正在测试的网站存在限制,我无法在firefox 14安装上运行我的测试。另外我无法升级firefox 14安装。

所以我正在寻找一个解决方案,我可以使用这个便携式firefox版本而不是安装的firefox 14版本。

我应该如何强制selenium使用这个便携版本而不是安装版本?如果有人可以指导我做一些很棒的描述性文章/博客。

我的代码如下: -

*变量*

${SELENIUM_HUB}     remote_url=http://127.0.0.1:4444/wd/hub
${BROWSER}      firefox D:\\Firefox Portable\\FirefoxPortable\\firefox.exe
${CLIENT_URL}       https://abcd.aline.local

Open Browser    ${CLIENT_URL}    ${BROWSER}   ${SELENIUM_HUB}

指定路径为D:/ Firefox Portable / FirefoxPortable / firefox.exe不起作用,因为'/'得到了删除。有什么想法吗?

PS:python是用过的语言

2 个答案:

答案 0 :(得分:1)

在实例化Firefox webdriver时,您可以使用FirefoxBinary类作为firefox_binary参数指定所需的firefox二进制文件的路径。

http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.firefox_binary.html

http://selenium.googlecode.com/svn/trunk/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.webdriver.html#module-selenium.webdriver.firefox.webdriver

确保二进制文件的路径是正确的,例如:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

firefox_binary = FirefoxBinary("D:\\Firefox Portable\\FirefoxPortable\\firefox.exe")
driver = webdriver.Firefox(firefox_binary=firefox_binary)

使用robotframework,如:

${firefox_binary}=  Evaluate    sys.modules['selenium.webdriver.firefox.firefox_binary'].FirefoxBinary("D:\\Firefox Portable\\FirefoxPortable\\firefox.exe")    sys, selenium.webdriver.firefox_binary
Create Webdriver    Firefox    firefox_binary=${firefox_binary}

可能会有效。

答案 1 :(得分:0)

Selenium2Library不允许您在Open Browser关键字中指定浏览器路径,但它具有可用的remote_url参数。在Selenium2Library获得适当的PhantomJS支持之前,使用PhantomJS的方法是remote_urlhttp://spage.fi/phantomjs

因此理论上我们应该首先使用便携式Firefox,启动我们的Firefox,然后使用remote_url连接到它。这样的事情。

Start Process    c:\\path\\to\\portable\\firefox.exe
Open Browser    http://google.com    firefox    main browser    http://localhost:${firefox webdriver port}

问题是我不知道Firefox默认使用什么webdriver端口或如何指定它。另外,可能还需要为Firefox安装webdriver.xpi插件。附件可以在这里找到C:\ Python27 \ Lib \ site-packages \ selenium \ webdriver \ firefox或者你的python安装地点。

Selenium2Library中有一个Create Webdriver关键字,它允许我们指定firefox_binary(以及其他参数)。所以在理论上

Create Webdriver    Firefox    firefox_binary=c:\\path\\to\\portable\\firefox.exe

应该可以工作,但我得到的只是“AttributeError:'str'对象没有属性'launch_browser'”。

很抱歉我无法想办法做到这一点,但是通过深入挖掘Firefox webdriver端口或者Create Webdriver如何实际工作,你可能会更进一步。