【问题标题】:Selenium: "Failed to Decode Response from Marionette"Selenium:“无法解码木偶的响应”
【发布时间】:2019-10-24 15:13:37
【问题描述】:

我已经看到过这个问题,但不幸的是,我一直在努力寻找一个明确的解决方案。

也许,如果有人自己使用它,他们可以分享他们使用的 firefox 和 geckodriver 组合。

编辑:我通过 Jenkins 运行它,所以可能在 Jenkins 中有一个嵌入式 Firefox,它正在使用,它与服务器本身不同。

对于我自己,我正在使用: 森托斯 7 火狐 67.0 GeckoDriver 版本 0.26.0(适用于 linux64;从这里下载:https://github.com/mozilla/geckodriver/releases) org.seleniumhq.selenium:selenium-server:3.4.0

下面是我得到的堆栈跟踪(代替包路径,我将触发此问题的代码行以粗体放在了此处):

_org.openqa.selenium.WebDriverException:无法解码来自木偶的响应 构建信息:版本:'3.4.0',修订:'未知',时间:'未知' 系统信息:主机:'jenkins2',ip:'172.16.12.149',os.name:'Linux',os.arch:'amd64',os.version:'3.10.0-957.21.3.el7.x86_64' , java.version: '1.8.0_211' 驱动信息:org.openqa.selenium.firefox.FirefoxDriver 功能 [{moz:profile=/tmp/rust_mozprofileuGyLim, rotatable=false, moz:geckodriverVersion=0.26.0, timeouts={implicit=0.0, pageLoad=300000.0, script=30000.0}, pageLoadStrategy=normal, unhandledPromptBehavior=dismiss and notify, strictFileInteractability=false, moz:headless=true, platform=ANY, moz:accessibilityChecks=false, moz:useNonSpecCompliantPointerOrigin=false, acceptInsecureCerts=false, browserVersion=67.0, moz:shutdownTimeout=60000.0, platformVersion=3.10.0-957.21.3。 el7.x86_64, moz:processID=31137.0, browserName=firefox, moz:buildID=20190516215225, javascriptEnabled=true, platformName=linux, setWindowRect=true, moz:webdriverClick=true}] 会话 ID:bd33f758-d6fa-46a4-8e52-c9d019f8ec43 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:150) 在 org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:115) 在 org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:45) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) 在 org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:364) 在“driver.get(url);”(LandingPage.java:385) 在“accessFirefox();” (LandingPage.java:338) 在“accessPage(browser);”(LandingPage.java:45) 在 "landingPage = new LandingPage();"BasicTest.java:14) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 在 org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 在 org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 在 org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 在 org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 在 org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 在 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 在 org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 在 org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 在 org.junit.runners.ParentRunner.run(ParentRunner.java:363) 在 org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) 在 org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) 在 org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) 在 org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) 在 org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) 在 org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) 在 org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)_

【问题讨论】:

    标签: selenium-webdriver firefox geckodriver


    【解决方案1】:

    到目前为止,这是答案:

    64 之后的 Firefox 版本显然不起作用 (https://github.com/mozilla/geckodriver/issues/1560)。

    作为故障排除的一部分,我在几个不同版本的 Firefox 之间切换,70.0、69.0.3、67.0、65.0.2 和 64.0.2。在这些版本中,只有 64.0.2 有效。

    geckodriver 开发人员已经意识到了这个问题,尽管已经有一段时间了。

    【讨论】:

    • 还是这样吗?
    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 2018-09-18
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多