Node.js WebdriverIO错误

Node.js WebdriverIO错误,node.js,selenium,selenium-webdriver,selenium-chromedriver,webdriver-io,Node.js,Selenium,Selenium Webdriver,Selenium Chromedriver,Webdriver Io,我正在尝试从webdriverIO运行测试脚本 代码如下: var webdriverio = require('webdriverio'); var options = { desiredCapabilities: { browserName: 'chrome' } }; webdriverio .remote(options) .init() .url('http://www.google.com') .getTitle().

我正在尝试从webdriverIO运行测试脚本

代码如下:

var webdriverio = require('webdriverio');
var options = {
    desiredCapabilities: {
        browserName: 'chrome'
    }
};

webdriverio
    .remote(options)
    .init()
    .url('http://www.google.com')
    .getTitle().then(function(title) {
        console.log('Title was: ' + title);
    })
    .end()
    .catch(function(err) {
        console.log(err);
    });
当我运行此程序时,我会遇到无法理解的错误。 这是Node告诉我的:

C:\...\webdriverio-node>node test.js
{ Error: A new session could not be created.
    at end() - C:\...\webdriverio-node\test.js:15:6
  details: undefined,
  message: 'Unable to create session from org.openqa.selenium.remote.NewSessionP
ayload@25bd2276\nBuild info: version: \'3.11.0\', revision: \'e59cfb3\', time: \
'2018-03-11T20:33:15.31Z\'\nSystem info: host: \'USER-PC\', ip: \'\', os.name: \'Windows 7\', os.arch: \'amd64\', os.version: \'6.1\', java.vers
ion: \'1.8.0_171\'\nDriver info: driver.version: unknown',
  type: 'RuntimeError',
  seleniumStack:
   { type: 'SessionNotCreatedException',
     message: 'A new session could not be created.',
     orgStatusMessage: 'Unable to create session from org.openqa.selenium.remote
.NewSessionPayload@25bd2276\nBuild info: version: \'3.11.0\', revision: \'e59cfb
3\', time: \'2018-03-11T20:33:15.31Z\'\nSystem info: host: \'USER-PC\', ip: \'\', os.name: \'Windows 7\', os.arch: \'amd64\', os.version: \'6.1\
', java.version: \'1.8.0_171\'\nDriver info: driver.version: unknown' } }
16:50:53.332 INFO [ActiveSessionFactory.apply] - Capabilities are: Capabilities
{browserName: firefox, handlesAlerts: true, javascriptEnabled: true, locationCon
textEnabled: true, loggingPrefs: org.openqa.selenium.logging..., requestOrigins:
 {name: webdriverio, url: http://webdriver.io, version: 4.12.0}, rotatable: true
}
16:50:53.335 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.o
penqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selen
ium.firefox.GeckoDriverService)
1524577853389   geckodriver     INFO    geckodriver 0.20.0
1524577853399   geckodriver     INFO    Listening on 127.0.0.1:42211
1524577854396   mozrunner::runner       INFO    Running command: "C:\\Program Fi
les (x86)\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\Us
er\\AppData\\Local\\Temp\\rust_mozprofile.oSWu443RM4TY"
这是我从selenium server standalone获得的信息:

16:49:43.014 INFO [ActiveSessionFactory.apply] - Capabilities are: Capabilities
{browserName: chrome, handlesAlerts: true, javascriptEnabled: true, locationCont
extEnabled: true, loggingPrefs: org.openqa.selenium.logging..., requestOrigins:
{name: webdriverio, url: http://webdriver.io, version: 4.12.0}, rotatable: true}

16:49:43.016 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.o
penqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selen
ium.chrome.ChromeDriverService)
当我将代码第4行更改为:

browserName: 'firefox'
这是Node.js生成的错误:

C:\...\webdriverio-node>node test.js
{ Error: An unknown server-side error occurred while processing the command.
    at end() - C:\...\webdriverio-node\test.js:15:6
  details: undefined,
  message: 'Process unexpectedly closed with status -1073741511\nBuild info: ver
sion: \'3.11.0\', revision: \'e59cfb3\', time: \'2018-03-11T20:33:15.31Z\'\nSyst
em info: host: \'USER-PC\', ip: \'\', os.name: \'Windows 7\', os
.arch: \'amd64\', os.version: \'6.1\', java.version: \'1.8.0_171\'\nDriver info:
 driver.version: unknown\nremote stacktrace: ',
  type: 'RuntimeError',
  seleniumStack:
   { type: 'UnknownError',
     message: 'An unknown server-side error occurred while processing the comman
d.',
     orgStatusMessage: 'Process unexpectedly closed with status -1073741511\nBui
ld info: version: \'3.11.0\', revision: \'e59cfb3\', time: \'2018-03-11T20:33:15
.31Z\'\nSystem info: host: \'USER-PC\', ip: \'\', os.name: \'Win
dows 7\', os.arch: \'amd64\', os.version: \'6.1\', java.version: \'1.8.0_171\'\n
Driver info: driver.version: unknown\nremote stacktrace: ' } }
这就是selenium server standalone告诉我的:

C:\...\webdriverio-node>node test.js
{ Error: A new session could not be created.
    at end() - C:\...\webdriverio-node\test.js:15:6
  details: undefined,
  message: 'Unable to create session from org.openqa.selenium.remote.NewSessionP
ayload@25bd2276\nBuild info: version: \'3.11.0\', revision: \'e59cfb3\', time: \
'2018-03-11T20:33:15.31Z\'\nSystem info: host: \'USER-PC\', ip: \'\', os.name: \'Windows 7\', os.arch: \'amd64\', os.version: \'6.1\', java.vers
ion: \'1.8.0_171\'\nDriver info: driver.version: unknown',
  type: 'RuntimeError',
  seleniumStack:
   { type: 'SessionNotCreatedException',
     message: 'A new session could not be created.',
     orgStatusMessage: 'Unable to create session from org.openqa.selenium.remote
.NewSessionPayload@25bd2276\nBuild info: version: \'3.11.0\', revision: \'e59cfb
3\', time: \'2018-03-11T20:33:15.31Z\'\nSystem info: host: \'USER-PC\', ip: \'\', os.name: \'Windows 7\', os.arch: \'amd64\', os.version: \'6.1\
', java.version: \'1.8.0_171\'\nDriver info: driver.version: unknown' } }
16:50:53.332 INFO [ActiveSessionFactory.apply] - Capabilities are: Capabilities
{browserName: firefox, handlesAlerts: true, javascriptEnabled: true, locationCon
textEnabled: true, loggingPrefs: org.openqa.selenium.logging..., requestOrigins:
 {name: webdriverio, url: http://webdriver.io, version: 4.12.0}, rotatable: true
}
16:50:53.335 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.o
penqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selen
ium.firefox.GeckoDriverService)
1524577853389   geckodriver     INFO    geckodriver 0.20.0
1524577853399   geckodriver     INFO    Listening on 127.0.0.1:42211
1524577854396   mozrunner::runner       INFO    Running command: "C:\\Program Fi
les (x86)\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\Us
er\\AppData\\Local\\Temp\\rust_mozprofile.oSWu443RM4TY"

我正在使用selenium-server-standalone-3.11.0.jar

我能够解决firefox部分,只是重新安装firefox,因为浏览器安装已损坏

但不幸的是,在我得到结果之前,WebDrivero催生了Firefox浏览器,这让我很失望


我不知道是否可以在headless模式下运行它。

这是因为找不到合适的二进制文件。签出webdriver.io的此部分

在最新版本的Selenium中,浏览器的大多数驱动程序都附带了一个必须下载和设置的外部驱动程序

从for OS下载最新版本的chromedriver,将其放置在与ur test.js相同的位置,或在windows中设置路径。它将被自动拾取。我只在chrome上试过,并且成功地执行了你的代码

就我个人而言,我经常管理二进制文件

npm安装webdriver管理器

webdriver管理器更新

webdriver管理器启动


这将设置连接到浏览器所需的所有二进制驱动程序

IMO,您需要将问题范围缩小到ChromeDriver或GeckoDriver,并使用所有二进制版本信息进行更新,以供进一步分析。我在此处添加了这两个驱动程序。我不知道还要在这里写些什么来进一步了解情况。