【发布时间】:2015-01-31 17:45:44
【问题描述】:
我有一个适用于我的 html 页面的 webdriver javascript 测试脚本,该脚本使用 ChromeDriver 运行,无需启动 selenium 独立服务器:
test.js
'use strict';
var path = require('path');
var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var options = new chrome.Options();
var logging_prefs = new webdriver.logging.Preferences();
logging_prefs.setLevel(webdriver.logging.Type.BROWSER, webdriver.logging.Level.ALL);
options.setLoggingPrefs(logging_prefs);
var driver = new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
driver.get('file://' + path.resolve('./index.html'));
// Do some testing
driver.quit();
我想将此测试移植到使用 theintern.io,但我不希望必须运行独立的 selenium 服务器。这可能吗?
[编辑:添加有关错误和实习配置的信息]
我看到错误 [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED 我猜是因为我没有运行独立服务器。
我的实习生配置如下:
define({
environments: [
{ browserName: 'chrome' }
],
// Name of the tunnel class to use for WebDriver tests
tunnel: 'NullTunnel',
// Non-functional test suite(s) to run in each browser
suites: [ /* 'myPackage/tests/foo', 'myPackage/tests/bar' */ ],
// Functional test suite(s) to run in each browser once non-functional tests are completed
functionalSuites: [ 'tests/functional/index' ],
// A regular expression matching URLs to files that should not be included in code coverage analysis
excludeInstrumentation: /^(?:tests|node_modules)\//
});
我的实习生测试是这样的:
define([
'intern!object',
'intern/chai!assert',
'require'
], function (registerSuite, assert, require) {
registerSuite({
name: 'index',
'first test': function () {
return this.remote
.get(require.toUrl('index.html'))
... //more test logic
}
});
});
【问题讨论】:
-
所以,澄清一下,您是否已经在运行 ChromeDriver,或者您现有的测试环境是否在运行测试时启动了 ChromeDriver 服务器?
-
我没有启动单独的服务器或类似的东西。我使用 brew 安装了最新的 ChromeDriver,并使用
node test.js运行 test.js 脚本,它似乎可以正常工作。据我了解,我直接连接到 ChromeDriver,而不是通过 selenium 服务器 java 进程(我使用了these 指令)。
标签: selenium-webdriver selenium-chromedriver intern