【问题标题】:The second java project created for Selenium webdriver dont invoke the firefox browser为 Selenium webdriver 创建的第二个 java 项目不调用 firefox 浏览器
【发布时间】:2018-02-23 09:32:41
【问题描述】:

这很奇怪: 我在 Eclipse 中有一个 java 项目“A”,在那里我使用 selenium webdriver 3.8 创建了一个自动化框架。测试用例在 Firefox 和 chrome 上运行没有任何问题。

我在 Eclipse 中创建了另一个项目“B”,即使是一个简单的 webdriver 程序来调用 Firefox 浏览器并启动 https://google.com 也不起作用。如果我复制并运行这个java程序来项目“A”,它就可以正常工作。

我在项目 B 中遇到以下错误:

1519377466493   geckodriver INFO    geckodriver 0.19.1
1519377466501   geckodriver INFO    Listening on 127.0.0.1:23459
Feb 23, 2018 2:47:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
1519377467110   mozrunner::runner   INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\ag1\\AppData\\Local\\Temp\\rust_mozprofile.zR3DSF0kPKPE"
1519377469383   addons.xpi  WARN    Error parsing extensions state: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [amIAddonManagerStartup.readStartupData]"  nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)"  location: "JS frame :: resource://gre/modules/addons/XPIProvider.jsm :: loadExtensionState :: line 1554"  data: no] Stack trace: loadExtensionState()@resource://gre/modules/addons/XPIProvider.jsm:1554 < getInstallState()@resource://gre/modules/addons/XPIProvider.jsm:1589 < checkForChanges()@resource://gre/modules/addons/XPIProvider.jsm:3109 < startup()@resource://gre/modules/addons/XPIProvider.jsm:2188 < callProvider()@resource://gre/modules/AddonManager.jsm:269 < _startProvider()@resource://gre/modules/AddonManager.jsm:739 < startup()@resource://gre/modules/AddonManager.jsm:906 < startup()@resource://gre/modules/AddonManager.jsm:3090 < observe()@jar:file:///C:/Program%20Files/Mozilla%20Firefox/omni.ja!/components/addonManager.js:65
1519377470745   Marionette  INFO    Enabled via --marionette
1519377478197   Marionette  INFO    Listening on port 62067
1519377478784   Marionette  DEBUG   Register listener.js for window 4294967297
Feb 23, 2018 2:47:58 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Feb 23, 2018 2:47:58 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to straight W3C remote end connection
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{marionette=true, firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@a38d7a3, browserName=firefox, moz:firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@a38d7a3, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700'
System info: host: 'EABYYA5G3S', ip: '16.166.226.122', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_161'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:259)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:247)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:242)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:238)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
    at pilot.Firefoxtest.main(Firefoxtest.java:11)

【问题讨论】:

    标签: java selenium firefox selenium-webdriver log4j


    【解决方案1】:

    错误说明了一切:

    Feb 23, 2018 2:47:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
    .
    Feb 23, 2018 2:47:58 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Falling back to original OSS JSON Wire Protocol.
    Feb 23, 2018 2:47:58 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Falling back to straight W3C remote end connection
    Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{marionette=true, firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@a38d7a3, browserName=firefox, moz:firefoxOptions=org.openqa.selenium.firefox.FirefoxOptions@a38d7a3, version=, platform=ANY}], required capabilities = Capabilities [{}]
    Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700'
    System info: host: 'EABYYA5G3S', ip: '16.166.226.122', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_161'
    Driver info: driver.version: FirefoxDriver
    

    从错误堆栈跟踪中可以清楚地看出以下几点:

    • org.openqa.selenium.remote.ProtocolHandshake createSession 不成功。因此回退到 OSS JSON Wire Protocol
    • 回退到原始 OSS JSON 有线协议 也失败了。因此再次尝试使用 W3C 远程端连接
    • org.openqa.selenium.SessionNotCreatedException 由于空白必需的功能而引发

      required capabilities = Capabilities [{}]
      
    • Selenium 版本未检测到。 (如Build info: version: 'unknown'

    • GeckoDriver 未检测到。 (如Driver info: driver.version: FirefoxDriver

    解决方案

    Project BProject Space 显然由于不确定/未知的原因而容易出错。删除整个项目空间并创建一个新的项目空间来恢复测试将是一个更好的选择。

    【讨论】:

    • 感谢您的回答。看起来由于某种原因我使用的硒罐有问题。我新下载了 selenium 独立 jar,创建了一个新项目“B”,从“项目 A”复制了其余项目文件夹。现在它可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    相关资源
    最近更新 更多