例外:无法启动新的浏览器会话:在Python中启动浏览器Selenium时出错

时间:2010-08-02 14:28:37

标签: python ubuntu selenium

在Python中运行基本的Selenium测试脚本时出现以下错误:

======================================================================
ERROR: test_untitled (__main__.TestTesting)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "TestTesting.py", line 15, in setUp
    self.selenium.start()
  File "/usr/lib/python2.6/dist-packages/selenium.py", line 166, in start
    result = self.get_string("getNewBrowserSession", [self.browserStartCommand, self.browserURL])
  File "/usr/lib/python2.6/dist-packages/selenium.py", line 195, in get_string
    result = self.do_command(verb, args)
  File "/usr/lib/python2.6/dist-packages/selenium.py", line 191, in do_command
    raise Exception, data
Exception: Failed to start new browser session: Error while launching browser

----------------------------------------------------------------------
Ran 1 test in 20.427s

FAILED (errors=1)

代码是从Selenium IDE,firefox插件生成的,所以我不确定它为什么不起作用。我的猜测是某种配置不正确,但我不确定。这是我的代码:

from selenium import selenium

class TestTesting(unittest.TestCase):
    def setUp(self):
        self.verificationErrors = []
        self.selenium = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
        self.selenium.start()

    def test_untitled(self):
        sel = self.selenium
        sel.open("/firefox?client=firefox-a&rls=org.mozilla:en-US:official")
        sel.type("sf", "test")
        sel.click("btnG")
        sel.wait_for_page_to_load("30000")

    def tearDown(self):
        self.selenium.stop()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

服务器在Ubuntu上运行。

如何避免此错误?

3 个答案:

答案 0 :(得分:2)

我开始工作的修复是没有设置firefox的显示。所以我需要执行以下语句:

export DISPLAY=:0

在我启动Selenium服务器之前。这解决了这个问题,但又出现了一个新问题。

答案 1 :(得分:0)

这通常在另一个firefox已经打开时发生。即您正在使用特定的FF配置文件来应用程序。运行脚本时,请关闭FF。

答案 2 :(得分:0)

暂时以root身份启动selenium服务器对我来说很有用:

sudo java -jar selenium-server.jar