我在Mac OSX 10.8.5上使用selenium-server-standalone-2.41.0.jar和Java 7 Update 55.
一切正常,使用Firefox版本25.0.1但如果我尝试Firefox的v26,v27,v28或v29,那么我的代码将打开firefox并且它将挂起(在Firefox屏幕上没有任何加载)。
当我将Firefox降级回v25时,它们都会再次开始正常工作。
有任何想法或建议吗?
由于
编辑:在Selenium bug论坛上发布了问题: https://code.google.com/p/selenium/issues/detail?id=7279
答案 0 :(得分:2)
实际上还有很多其他线程让人们在Firefox启动时出现同样的问题,并且只是坐在那里做空白的空白屏幕。我尝试了从v25.0.1到v33的所有Firefox版本以及从v2.41.0到v2.44.0的所有版本的selenium-server-standalone,我可以使用的唯一组合是带有SSS v2.41.0的FF v25.0.1。 / p>
所以我终于想出了解决这个问题的方法,所以我可以使用FF v33进行普通冲浪并让Selenium使用FF v25。这就是我所做的:
(1)我将我的日常Firefox更新到最新版本。
(2)我从这里下载了第二个旧版本的Firefox(v25.0.1)https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/25.0.1/然后在我的Mac上安装到桌面上,然后将其从Firefox.app重命名为Firefox25.0.1.app然后将其移动到我的Applications文件夹中。
(3)我从这里为https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles创建了一个新的Firefox第二个配置文件并将其命名为ffSeleniumProfile
(4)然后我必须确保配置文件仍然具有默认的默认配置文件。在Mac上,查看~/Library/Application Support/Firefox/profiles.ini
文件,它应该看起来像这样(请注意Default=1
应位于Profile0下)
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/abcd1234.default
Default=1
[Profile1]
Name=ffSeleniumProfile
IsRelative=1
Path=Profiles/a1b2c3d4.ffSeleniumProfile
(5)对于Selenium Server Standalone,请确保您从http://selenium-release.storage.googleapis.com/2.41/selenium-server-standalone-2.41.0.jar使用v2.41.0 selenium-server-standalone-2.41.0.jar
(6)最后,当您启动Java并调用Firefox / FirefoxDriver时,您需要指定它以使用Firefox25.0.1.app和ffSeleniumProfile。我这样做是通过将以下System.setProperty添加到我在启动java时使用的主java文件的main方法:
public static void main(String[] args)
throws InterruptedException,MalformedURLException {
System.setProperty("webdriver.firefox.bin", "/Applications/Firefox25.0.1.app/Contents/MacOS/firefox-bin");
System.setProperty("webdriver.firefox.profile", "ffSeleniumProfile");
}
现在,当我启动Selenium Java时,它将使用firefox的v25.0.1以及第二个配置文件,当我从桌面启动firefox时,它将使用默认配置文件以及我升级的最新版本。< / p>
这只是一种解决方法,但它现在解决了我的问题。
答案 1 :(得分:0)
嘿尝试逐一在Firefox浏览器中禁用一些附加组件并尝试运行代码这有助于我在Windows上。尝试一次..