问题描述
我曾尝试将 Selenium 用于 Java,它在 Windows 10 上运行良好,但在我的 RaspBerry Pi 2 B 上却无法运行,我遇到了错误。
代码行错误:
driver = new FirefoxDriver(firefoxOptions);
错误:
org.openqa.selenium.WebDriverException: java.net.ConnectException: 无法连接到 > localhost/0:0:0:0:0:0:0:1:13054 构建信息:版本:“未知”,修订:“未知”,时间:“未知” 系统信息:host: 'Domoticz',ip: '127.0.1.1',os.name: 'Linux',os.arch: 'arm',os.version: '5.10.17-> v7+',java.version: '11.0.9.1' 驱动程序信息:driver.version:FirefoxDriver 在 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:147) 在 com.seleniumtest.seleniumtest.Test.run(Test.java:73) 引起:java.net.ConnectException: 无法连接到 localhost/0:0:0:0:0:0:0:1:13054 在 okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:247) 在 okhttp3.internal.connection.RealConnection.connect(RealConnection.java:165) 在 okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257) 在 okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135) 在 okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114) 在 okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 在 okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 在 okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 在 okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) 在 okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) 在 okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200) 在 okhttp3.RealCall.execute(RealCall.java:77) 在 org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103) 在 org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105) 在 org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) ……还有 5 个 引起:java.net.ConnectException:Connexion refusée(连接被拒绝) 在 java.base/java.net.PlainSocketImpl.socketConnect(Native Method) 在 java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) 在 java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) 在 java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) 在 java.base/java.net.socksSocketImpl.connect(SocksSocketImpl.java:403) 在 java.base/java.net.socket.connect(Socket.java:609) 在 okhttp3.internal.platform.Platform.connectSocket(Platform.java:129) 在 okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:245) ……还有 27 个
Pom.xml :
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
使用的驱动程序:
- geckodriver-v0.27.0-linux32.tar
- geckodriver-v0.28.0-linux32.tar
- geckodriver-v0.29.1-linux32.tar
火狐版:
Mozilla Firefox 78.10.0esr
有什么想法吗? 谢谢!
解决方法
我发现了问题:我必须使用 arm 驱动程序而不是 linux32 : https://github.com/mozilla/geckodriver/releases/tag/v0.23.0