Javascript 如何增加Selenium Chrome节点实例

Javascript 如何增加Selenium Chrome节点实例,javascript,node.js,selenium,amazon-ec2,selenium-chromedriver,Javascript,Node.js,Selenium,Amazon Ec2,Selenium Chromedriver,我目前正在尝试使用selenium的chromedriver在AmazonEC2服务器上启动一些节点实例进行测试。理想情况下,我希望达到1000多个节点的实例,所有这些实例都运行Chrome,但问题就从这里开始 在启动84个节点实例之后,selenium拒绝再启动任何节点&我只收到一个超时错误。 我认为这可能是一个ulimit问题,但是改变ulimit-n并没有什么不同。 我还尝试在新的不同EC2实例上设置这一切,但在这里也没有运气 我正在使用WebDrivero的javascript绑定与se

我目前正在尝试使用selenium的chromedriver在AmazonEC2服务器上启动一些节点实例进行测试。理想情况下,我希望达到1000多个节点的实例,所有这些实例都运行Chrome,但问题就从这里开始

在启动84个节点实例之后,selenium拒绝再启动任何节点&我只收到一个超时错误。 我认为这可能是一个ulimit问题,但是改变ulimit-n并没有什么不同。 我还尝试在新的不同EC2实例上设置这一切,但在这里也没有运气

我正在使用WebDrivero的javascript绑定与selenium standalone相结合来运行chrome headless实例。 RAM不应该是个问题,因为我使用的EC2服务器每个都有100gb以上的RAM

我们已经处理这个问题大约一周了,所以任何建议都会很有帮助

客户端错误:

 RuntimeError: RuntimeError
      (UnknownError:13) An unknown server-side error occurred while processing the command.
 Problem: unknown error: Chrome failed to start: exited abnormally
   (Driver info: chromedriver=2.12.301324     (de8ab311bc9374d0ade71f7c167bad61848c7c48),
 platform=Linux 3.2.0-60-virtual x86_64) (WARNING: The server did not provide any 
 stacktrace information)
 Command duration or timeout: 60.56 seconds
 Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
 System info: host: 'ip-172-31-25-40', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64',  
 os.version: '3.2.0-60-virtual', java.version: '1.7.0_65'
 Driver info: org.openqa.selenium.chrome.ChromeDriver

      Callstack:
      -> init()
以下是selenium服务器端的完整错误输出:

20:32:19.818 WARN - Exception thrown java.util.concurrent.ExecutionException:     
org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'ip-172-31-25-40', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64',         
os.version: '3.2.0-60-virtual', java.version: '1.7.0_65'
Driver info: driver.version: unknown
.
.
.
Caused by: org.openqa.selenium.WebDriverException: java.lang.reflect.InvocationTargetException
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'ip-172-31-25-40', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64',     
os.version: '3.2.0-60-virtual', java.version: '1.7.0_65'
Driver info: driver.version: unknown
    at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(
DefaultDriverProvider.java:69)
    at org.openqa.selenium.remote.server.DefaultDriverProvider.newInstance(
DefaultDriverProvider.java:53)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(
DefaultDriverFactory.java:54)
at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:214)
at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:168)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.server.DefaultDriverProvider.callConstructor(
DefaultDriverProvider.java:59)
... 9 more

Caused by: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: 
exited  abnormally

(Driver info: chromedriver=2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48),
platform=Linux 3.2.0-60-virtual x86_64) (WARNING: The server did not provide any \
stacktrace information)
Command duration or timeout: 60.54 seconds
节点实例代码:

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'chrome', 
        version: 38
    },
    port: 4444 // same port as the one used by the selenium-start server 
};


var url = "example.com";

var seconds = 3600;

webdriverio
    .remote(options)
    .init()
    .url(url)
    .pause(seconds * 1000)
    .end();

您可以发布代码来启动Selenium实例吗?我添加了它。我发现的解决方法是让一个实例多次打开同一个视频。不是最好的解决方案,但对于我所做的,它会做的