【问题标题】:Selenium runs the wrong browser (default)Selenium 运行错误的浏览器(默认)
【发布时间】:2015-01-07 22:46:51
【问题描述】:

tl/dr:我做错了什么?

我正在尝试在本地运行 selenium 测试并与 Browserstack 平台兼容。我使用此代码在本地连接:

wd = webdriver.Remote('http://xxxxxxxx@hub.browserstack.com:80/wd/hub', {'browser':'firefox'})
wd.get('http://google.com')
wd.get_screenshot_as_file('/tmp/googl.png')
wd.close()

我在/tmp/看到了一个不错的截图。

现在我尝试对本地 Selenium 做同样的事情:

$ java -jar /usr/share/java/selenium-server-standalone-2.44.0.jar &

服务器名义上启动。我尝试使用 Firefox (30.0) 创建会话,它可以正常工作。 (默认浏览器是 Opera。)

然后我尝试运行 Python 代码:

wd = webdriver.Remote('http://localhost:4444/wd/hub', {'browser':'firefox'})
wd.get('http://google.com')
wd.get_screenshot_as_file('/tmp/googl2.png')
wd.close()

Selenium 打开 Opera 而不是 Firefox。

我在 Python 控制台中看到了这个:

Message: <html>
<head>
<title>Error 500 org/json/JSONObject</title>
</head>
<body>
<h2>HTTP ERROR: 500</h2><pre>org/json/JSONObject</pre>
<p>RequestURI=/wd/hub/session</p>
<p><i><small><a href="http://jetty.mortbay.org">Powered by Jetty://</a></small></i></p>

为什么打开的是 Opera 而不是 Firefox?

【问题讨论】:

    标签: python firefox selenium


    【解决方案1】:

    问题出在这一行:

    wd = webdriver.Remote('http://localhost:4444/wd/hub', {'browser':'firefox'})
    

    browser 更改为browserName 将修复它。使用

    wd = webdriver.Remote('http://localhost:4444/wd/hub', {'browserName':'firefox'})
    

    改为。

    【讨论】:

    • 同样的事情,它是试图在调试模式下工作的 Opera。 编辑 哎呀。没关系,它奏效了。谢谢!
    • 太棒了!很高兴它有帮助。
    【解决方案2】:

    另一个解决方案(非常接近公认的答案)是使用预定义的 DesiredCapabilities constants

    from selenium import webdriver
    
    capabilities = webdriver.DesiredCapabilities.FIREFOX.copy()
    wd = webdriver.Remote('http://localhost:4444/wd/hub', desired_capabilities=capabilities)
    

    在这种情况下,capabilities 是一个已经包含 browserName 属性设置为 firefox 的字典。

    【讨论】:

      猜你喜欢
      • 2011-05-28
      • 1970-01-01
      • 2020-05-05
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2012-01-29
      相关资源
      最近更新 更多