首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在debian 8上用发色器启动Selenium后出错

在debian 8上用发色器启动Selenium后出错
EN

Stack Overflow用户
提问于 2018-01-08 16:13:25
回答 1查看 3.7K关注 0票数 1

我在谷歌Chrome上尝试使用Selenium。它能在我的电脑上正常工作,但不会在我的Debian 8 64位服务器上运行。但是在服务器上,我得到了下面的代码--这个错误。

代码语言:javascript
复制
root@vps:/opt/SupportBot# java -jar /opt/web/googletest.jar
Starting ChromeDriver 2.34.522913 (36222509aa6e819815938cbf2709b4849735537c) on port 14684
Only local connections are allowed.
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary
  (Driver info: chromedriver=2.34.522913 (36222509aa6e819815938cbf2709b4849735537c),platform=Linux 2.6.32-042stab127.2 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 147 milliseconds
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T19:05:14.666Z'
System info: host: 'vps.server.com', ip: 'X.XXX.XXX.XXX', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-042stab127.2', java.version: '1.8.0_151'
Driver info: driver.version: ChromeDriver
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
        at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53)
        at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91)
        at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
        at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
        at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
        at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
        at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
        at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
        at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
        at GoogleSearch.main(GoogleSearch.java:14)

下面是我在windows PC和debian 8服务器上使用的代码:https://pastebin.com/auyNbi28

用过的软件:- Selenium版本3.8.1 - ChromeDriver 2.34-Debian8

更新:谢谢C-奥托,现在我开始前进了!我发现这个问题是因为没有安装铬。但是现在我在循环中得到了这个错误

Starting ChromeDriver 2.34.522913 (36222509aa6e819815938cbf2709b4849735537c) on port 2783 Only local connections are allowed. [0.748][SEVERE]: CreatePlatformSocket() returned an error, errno=97: Address family not supported by protocol (97)

EN

回答 1

Stack Overflow用户

发布于 2018-01-09 04:55:20

你看到的第一个错误是:

代码语言:javascript
复制
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

造成此错误的主要原因如下:

  • java.lang.RuntimeException: exception in constructor
  • java.lang.reflect.InvocationTargetException
  • java.lang.IllegalArgumentException

您可以找到关于这个回答中提到的要点的详细讨论。

你看到的第二个错误是:

代码语言:javascript
复制
[SEVERE]: CreatePlatformSocket() returned an error, errno=97: Address family not supported by protocol (97)

造成此错误的最常见原因是/etc/hosts文件中的错误配置。确保/etc/hosts中的条目是正确的,如下所示:

代码语言:javascript
复制
....
---   127.0.0.1       localhost.domain               localhost
+++   127.0.0.1       localhost               localhost

但通常情况下,CreatePlatformSocket()错误可能来自host_resolver_impl.cc.中的IPv6探测。

Issue#700347清楚地提到Chrome不支持没有IPv6支持的内核。在See system requirements下面有一个受支持的Linux发行版列表:topic=3227046

这起事故已经报告给铬,并正在被跟踪的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48154045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档