Webdriver.io崩溃,并显示NoSessionIdError

我正在尝试使webdriver.io和Jasmine工作。

按照他们的示例,我的脚本位于test/specs/first/test2.js(根据配置),其中包含:

var webdriverio = require('webdriverio');

describe('my webdriverio tests', function() {

var client = {};

jasmine.DEFAULT_TIMEOUT_INTERVAL = 9999999;

beforeEach(function() {

client = webdriverio.remote({ desiredCapabilities: {browserName: 'firefox'} });

client.init();

});

it('test it', function(done) {

client

.url("http://localhost:3000/")

.waitForVisible("h2.btn.btn-primary")

.click("h2.btn.btn-primary")

.waitForVisible("h2.btn.btn-primary")

.call(done);

});

afterEach(function(done) {

client.end(done);

});

});

我使用wdio作为测试运行程序,并使用交互式设置进行设置。该配置是自动生成的,并且都非常简单明了,因此我认为不需要发布它。

在另一个终端窗口中,我正在使用Java 7运行selenium-server-

andalone-2.47.1.jar。我的计算机上确实安装了Firefox(运行测试时空白启动),并且我的计算机正在运行OS 10.10。 5,

当我启动测试运行程序时,会发生以下情况:

$ wdio wdio.conf.js

=======================================================================================

Selenium 2.0/webdriver protocol bindings implementation with helper commands in nodejs.

For a complete list of commands, visit http://webdriver.io/docs.html.

=======================================================================================

[18:17:22]: SET SESSION ID 46731149-79aa-412e-b9b5-3d32e75dbc8d

[18:17:22]: RESULT {"platform":"MAC","javascriptEnabled":true,"acceptSslCerts":true,"browserName":"firefox","rotatable":false,"locationContextEnabled":true,"webdriver.remote.sessionid":"46731149-79aa-412e-b9b5-3d32e75dbc8d","version":"40.0.3","databaseEnabled":true,"cssSelectorsEnabled":true,"handlesAlerts":true,"webStorageEnabled":true,"nativeEvents":false,"applicationCacheEnabled":true,"takesScreenshot":true}

NoSessionIdError: A session id is required for this command but wasn't found in the response payload

at waitForVisible("h2.btn.btn-primary") - test2.js:21:14

/usr/local/lib/node_modules/webdriverio/node_modules/q/q.js:141

throw e;

^

NoSessionIdError: A session id is required for this command but wasn't found in the response payload

0 passing (3.90s)

$

我发现这非常奇怪且莫名其妙,尤其是考虑到它甚至可以打印会话ID。

有任何想法吗?

回答:

请查看有关wdio测试运行程序的文档。您不需要自己使用init创建实例。wdio测试运行程序会为您创建和结束会话。

您的示例涵盖了独立的WebdriverIO用法(不带testrunner)。您可以在此处找到使用wdio的示例。

需要说明的是:有两种使用WebdriverIO的方法。您可以自己将其嵌入到测试系统中(作为独立的或作为刮板使用)。然后,您需要处理诸如创建和结束实例或并行运行这些实例之类的事情。使用WebdriverIO的另一种方法是使用其测试运行程序wdio。testrunner会获取一个配置文件,其中包含有关测试设置的大量信息,并生成实例更新Sauce

Labs等上的作业信息。

以上是 Webdriver.io崩溃,并显示NoSessionIdError 的全部内容, 来源链接: utcz.com/qa/413167.html

回到顶部