【问题标题】:geckodriver connection refusedgeckodriver 连接被拒绝
【发布时间】:2017-05-24 13:59:04
【问题描述】:

我尝试让我的 selenium 测试在 debian 服务器上运行,但我的 geckodriver 不断收到连接被拒绝错误。在我的本地机器上,它运行良好,运行 Ubuntu。你们中有人知道出了什么问题吗?我找不到任何有用的东西。

操作系统:Debian Jessie
构建工具:Gradle
Java 版本:8

设置方法

公共静态无效设置(){ //System.setProperty("webdriver.gecko.driver", "geckodriver.exe"); //用于在windows中调试 System.setProperty("webdriver.gecko.driver", "geckodriver"); //在linux上执行 //加载Webdriver时绕过System.err PrintStream err = System.err; System.setErr(new PrintStream(new NullOutputStream())); 驱动程序 = 新的 FirefoxDriver(); System.setErr(err); webDriverWait = new WebDriverWait(驱动程序, 1000); }

错误信息

org.openqa.selenium.WebDriverException:连接被拒绝 14:44:04.899 [DEBUG] [TestEventLogger] 构建信息:版本:'3.4.0',修订:'未知',时间:'未知' 14:44:04.899 [DEBUG] [TestEventLogger] 系统信息:主机:'security',ip:'127.0.1.1',os.name:'Linux',os.arch:'amd64',os.version:'3.16 .0-4-amd64',java.version:'1.8.0_131' 14:44:04.899 [DEBUG] [TestEventLogger] 驱动程序信息:driver.version:FirefoxDriver 14:44:04.899 [DEBUG] [TestEventLogger] 远程堆栈跟踪:堆栈回溯: 14:44:04.899 [DEBUG] [TestEventLogger] 0: 0x4fa94d - backtrace::backtrace::trace::h45ace4059cd74233 14:44:04.899 [DEBUG] [TestEventLogger] 1: 0x4fae32 - backtrace::capture::Backtrace::new::hb5a725a088a2a2fc 14:44:04.900 [调试] [TestEventLogger] 2: 0x4349d9 - webdriver::error::WebDriverError::new::h449345a591a119fd 14:44:04.900 [调试] [TestEventLogger] 3: 0x43f6b0 - geckodriver::marionette::MarionetteHandler::create_connection::h53f581202e4008b4 14:44:04.900 [调试] [TestEventLogger] 4: 0x442839 - >::handle_command::hd89c5efbeb4c7cd5 14:44:04.900 [DEBUG] [TestEventLogger] 5: 0x434e94 - webdriver::server::start::{{closure}}::h5e71183f67357de6 14:44:04.900 [调试] [TestEventLogger] 6: 0x408627 - std::panicking::try::do_call::h8c30e6af4c7f85af 14:44:04.904 [调试] [TestEventLogger] 7: 0x5b77fa - panic_unwind::__rust_maybe_catch_panic 14:44:04.904 [调试] [TestEventLogger] 在 /buildslave/rust-buildbot/slave/stable-dist-rustc-musl-linux/build/src/libpanic_unwind/lib.rs:98 14:44:04.907 [调试] [TestEventLogger] 8: 0x416e57->::call_box::h3f273b2445d78deb 14:44:04.907 [DEBUG] [TestEventLogger] 9: 0x5b0014 - alloc::boxed::{{impl}}::call_once 14:44:04.907 [调试] [TestEventLogger] 在 /buildslave/rust-buildbot/slave/stable-dist-rustc-musl-linux/build/src/liballoc/boxed.rs:624 14:44:04.907 [调试] [TestEventLogger] - std::sys_common::thread::start_thread 14:44:04.907 [调试] [TestEventLogger] 在 /buildslave/rust-buildbot/slave/stable-dist-rustc-musl-linux/build/src/libstd/sys_common/thread.rs:21 14:44:04.907 [DEBUG] [TestEventLogger] - std::sys::imp::thread::{{impl}}::new::thread_start 14:44:04.908 [调试] [TestEventLogger] 在 /buildslave/rust-buildbot/slave/stable-dist-rustc-musl-linux/build/src/libstd/sys/unix/thread.rs:84 14:44:04.908 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 14:44:04.908 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 14:44:04.908 [DEBUG] [TestEventLogger] 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 14:44:04.908 [DEBUG] [TestEventLogger] 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 14:44:04.908 [DEBUG] [TestEventLogger] at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57) 14:44:04.908 [DEBUG] [TestEventLogger] at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104) 14:44:04.908 [DEBUG] [TestEventLogger] at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$22(ProtocolHandshake.java:365) 14:44:04.908 [DEBUG] [TestEventLogger] 在 java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) 14:44:04.908 [DEBUG] [TestEventLogger] 在 java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) 14:44:04.909 [DEBUG] [TestEventLogger] 在 java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) 14:44:04.909 [调试] [TestEventLogger] 在 java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) 14:44:04.909 [调试] [TestEventLogger] 在 java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) 14:44:04.909 [DEBUG] [TestEventLogger] 在 java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 14:44:04.910 [DEBUG] [TestEventLogger] 在 java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) 14:44:04.910 [调试] [TestEventLogger] 在 java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 14:44:04.911 [DEBUG] [TestEventLogger] 在 java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464) 14:44:04.911 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:368) 14:44:04.911 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:159) 14:44:04.911 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142) 14:44:04.911 [DEBUG] [TestEventLogger] at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 14:44:04.912 [DEBUG] [TestEventLogger] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) 14:44:04.914 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250) 14:44:04.914 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) 14:44:04.798 [DEBUG] [org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor] 执行测试类 ch.siroop.security.test.a2.Cookies_Session 14:44:04.922 [调试] [TestEventLogger] 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) 14:44:04.922 [调试] [TestEventLogger] 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:191) 14:44:04.922 [DEBUG] [TestEventLogger] 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:108) 14:44:04.923 [DEBUG] [TestEventLogger] 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:104) 14:44:04.923 [DEBUG] [TestEventLogger] 在 ch.siroop.security.test.a2.Login.setUp(Login.java:40) 14:44:04.923 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 14:44:04.923 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 14:44:04.923 [DEBUG] [TestEventLogger] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 14:44:04.923 [DEBUG] [TestEventLogger] 在 java.lang.reflect.Method.invoke(Method.java:498) 14:44:04.923 [调试] [TestEventLogger] 在 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 14:44:04.924 [调试] [TestEventLogger] 在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 14:44:04.924 [调试] [TestEventLogger] 在 org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 14:44:04.926 [调试] [TestEventLogger] 在 org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) 14:44:04.926 [调试] [TestEventLogger] 在 org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.junit.runners.ParentRunner.run(ParentRunner.java:363) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:114) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:57) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:66) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) 14:44:04.927 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 14:44:04.927 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 14:44:04.927 [DEBUG] [TestEventLogger] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 14:44:04.927 [DEBUG] [TestEventLogger] 在 java.lang.reflect.Method.invoke(Method.java:498) 14:44:04.927 [DEBUG] [TestEventLogger] 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) 14:44:04.927 [调试] [TestEventLogger] 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 14:44:04.930 [调试] [TestEventLogger] 在 org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32) 14:44:04.930 [调试] [TestEventLogger] 在 org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 14:44:04.934 [DEBUG] [TestEventLogger] 在 com.sun.proxy.$Proxy3.processTestClass(未知来源) 14:44:04.934 [DEBUG] [TestEventLogger] 在 org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:109) 14:44:04.936 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 14:44:04.937 [DEBUG] [TestEventLogger] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 14:44:04.937 [DEBUG] [TestEventLogger] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 14:44:04.937 [DEBUG] [TestEventLogger] 在 java.lang.reflect.Method.invoke(Method.java:498) 14:44:04.937 [调试] [TestEventLogger] 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) 14:44:04.937 [DEBUG] [TestEventLogger] 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 14:44:04.937 [调试] [TestEventLogger] 在 org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:377) 14:44:04.937 [DEBUG] [TestEventLogger] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54) 14:44:04.937 [DEBUG] [TestEventLogger] at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40) 14:44:04.937 [DEBUG] [TestEventLogger] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 14:44:04.937 [DEBUG] [TestEventLogger] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 14:44:04.937 [DEBUG] [TestEventLogger] 在 java.lang.Thread.run(Thread.java:748)

【问题讨论】:

    标签: selenium geckodriver


    【解决方案1】:

    我终于可以找出导致问题的原因,我通过 ssh 开始测试,因此 geckodriver 不起作用。您必须添加 export DISPLAY=:0 才能使其工作。这告诉 Firefox 如何使用显示服务器。

    【讨论】:

      【解决方案2】:

      确保您的 gecko 驱动程序和 Firefox 版本相同,即两者都应该是 32 位或 64 位。

      【讨论】:

        猜你喜欢
        • 2017-10-03
        • 2018-11-03
        • 2017-08-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 2018-08-20
        • 1970-01-01
        相关资源
        最近更新 更多