无法通过Robot Framework IDE + Selenium运行Firefox(版本20)实例的“Open Browser”

时间:2013-04-16 14:55:15

标签: windows firefox selenium selenium-webdriver robotframework

我正在寻找一种方法,利用RIDE和Robot Framework,运行Firefox(第20版 - 最新版本),打开我喜欢的页面。这曾经与早期的Firefox版本无关,但现在似乎存在与Firefox 20处理配置文件的方式有关的问题。当我尝试运行常用的Open Browser命令时,Firefox会弹出,但标题中没有URL并且毫无生气。

Selenium Firefox的驱动程序似乎提供了一种定义要查找的配置文件目录的方法,但这似乎无济于事:

enter image description here

(给定目录对应于我通过Firefox创建的新配置文件)

7 个答案:

答案 0 :(得分:1)

试试这个解决方案: https://code.google.com/p/selenium/issues/detail?id=5508 希望能帮助到你。

答案 1 :(得分:1)

enter link description here,我发现:“当有自定义配置文件时,生成的配置文件路径”newprof“可能是unicode字符串,webdriver只接受字节串​​。”

尝试在selenium / webdriver / firefox / firefox_profile.py中添加和删除一些行,详细信息如下:https://github.com/SeleniumHQ/selenium/pull/55/files#r4178907

答案 2 :(得分:0)

Selenium说你需要升级到2.32.0以使其与FF 20兼容。但是当我这样做时,我遇到了一个不同的问题:它抛出一个“TypeError:环境只能包含字符串”

我仍然在寻找解决问题的方法......也许你可以升级Selenium并查看你是否有相同的结果?

答案 3 :(得分:0)

当我尝试使用firefox的robotframework时,我也会遇到TypeError: environment can only contain strings

原因:     因为在selenium-2.32.0-py2.7.egg包中,文件selenium\webdriver\firefox\firefox_profile.py将使用from __future__ import unicode_literals,所以firefox profile.path将是unicode dict。 所以当_start_from_profile_path()调用Popen(command, stdout=PIPE, stderr=STDOUT, env=self._firefox_env).communicate()时,会弹出TypeError。

解决方案:     将Selenium lib更新为最新版本或删除from __future__ import unicode_literals

中的firefox_profile.py

答案 4 :(得分:0)

转到firefox_profile.py文件并删除第一行并添加第二行。 (第157行)

PY /硒/ webdriver的/火狐/ firefox_profile.py

  • 返回self.profile_dir

  • return str(self.profile_dir)

这对我来说非常好

答案 5 :(得分:0)

请检查您是否已将geckodriver.exe文件添加到Python安装文件夹中。默认位置在C盘中。例如C:\ Python27。

答案 6 :(得分:-2)

使用最新且稳定版本的浏览器总是好的。请确保您拥有最新的geckodriver.exe并安装Firefox ESR版本。