我在Ubuntu 12.04 LTS上使用Firefox 27(之前为26),使用Tomlen应用程序和Selenium独立服务器2.39(最新形式的Maven),包括在应用程序中。一切都适用于Chrome,但我更喜欢使用Firefox,这是行不通的。 Firefox是使用xvfb从标准发行版安装的。同样,所有设置都可以正常使用Chrome,但是当我尝试使用带有以下代码的Firefox时:
WebDriver webDriver = new FirefoxDriver(); webDriver.get( “www.google.com”);
当我拍摄xvfb的屏幕截图时,我看到一个窗口,显示以下错误: “您的firefox个人资料无法加载。可能会丢失或无法访问”。
webDriver.get(“www.google.com”)只是挂起而且永远不会返回。
相同的代码在我的开发机器Mac OSX上运行良好。
我试图降级firefox并且没有用,同样的问题。有人有什么建议吗?
答案 0 :(得分:0)
这似乎是操作系统问题(读/写权限等),而不是Selenium问题。似乎有人设法通过更改Firefox缓存文件夹的所有者来修复它。
尝试执行以下命令:
sudo -s
chown -hR $ USER:$ USER~ / .cache / mozilla
请查看此内容,并告知我们是否有效Ubuntu - Firefox profile cannot be loaded after upgrade
答案 1 :(得分:0)
我发现了这个问题。在Tomcat下的Ubuntu中运行时,Tomcat实例在从标准发行版安装时使用root用户(tomcat7)运行。 Mourasman的回应指出我的问题是Firefox想要创建一个.cache / mozilla目录。 root用户无法做到这一点。为了在Ubuntu机器上解决这个问题,我不得不在系统上运行Tomcat作为“真正的”用户,主目录允许Firefox创建它想要的缓存目录(即使Selenium给它自己的配置文件)。
我在使用Ubuntu tomcat发行版时遇到了麻烦(我知道/ etc / default / tomcat7中有一个用户和组字段),但我永远无法使用它。当我改变用户时,我假设它与权限有关,它从来没有工作过。
所以我最终从Tomcat下载源代码并手动启动Tomcat .....
希望这可以帮助其他试图在Tomcat应用程序中使用Selenium中的Firefox的人。
感谢Mourasman指出.cache目录....