Selenium webdriver 我可以在不设置独立的selenium服务器的情况下使用Intern js框架运行功能测试吗?

Selenium webdriver 我可以在不设置独立的selenium服务器的情况下使用Intern js框架运行功能测试吗?,selenium-webdriver,selenium-chromedriver,intern,Selenium Webdriver,Selenium Chromedriver,Intern,我的html页面有一个可用的webdriver javascript测试脚本,该脚本使用ChromeDriver运行,无需启动selenium独立服务器: test.js 我想将此测试移植到intern.io,但我不希望运行独立的selenium服务器。这可能吗 [编辑:添加有关错误和Internet配置的信息] 我看到了错误[POSThttp://localhost:4444/wd/hub/session]connect ECONNREFUSED,我想这是因为我没有运行独立服务器 我的Int

我的html页面有一个可用的webdriver javascript测试脚本,该脚本使用ChromeDriver运行,无需启动selenium独立服务器:

test.js

我想将此测试移植到intern.io,但我不希望运行独立的selenium服务器。这可能吗

[编辑:添加有关错误和Internet配置的信息]

我看到了错误
[POSThttp://localhost:4444/wd/hub/session]connect ECONNREFUSED
,我想这是因为我没有运行独立服务器

我的Internet配置如下所示:

定义({
环境:[
{browserName:'chrome'}
],
//用于WebDriver测试的隧道类的名称
隧道:'NullTunnel',
//要在每个浏览器中运行的非功能测试套件
套件:[/*'myPackage/tests/foo','myPackage/tests/bar'*/],
//非功能测试完成后,在每个浏览器中运行的功能测试套件
功能套件:[“测试/功能/索引”],
//将URL与不应包含在代码覆盖率分析中的文件相匹配的正则表达式
不包括仪器:/^(?:测试|节点|模块)\//
});
我的INTERN测试如下所示:

定义([
“实习生!对象”,
“实习生/柴!断言”,
“需要”
],函数(registerSuite、assert、require){
注册表套件({
名称:'索引',
“第一个测试”:函数(){
退回这个遥控器
.get(require.toUrl('index.html'))
…//更多测试逻辑
}
});
});

Intern使用标准WebDriver协议,因此可用于实现该规范的任何服务器,而不仅仅是Selenium。在这种情况下,如果您试图连接到ChromeDriver,只需确保它首先运行(
ChromeDriver--port=4444--url base=wd/hub
),然后运行
intern runner config=mid/of/config
,您应该很乐意使用当前的配置。

那么,为了澄清,您是否已经在运行ChromeDriver,或者,当您运行测试时,您现有的测试环境是否正在启动ChromeDriver服务器?我不会启动单独的服务器或类似的东西。我已经使用brew安装了最新的ChromeDriver,并使用
node test.js
运行test.js脚本,它似乎可以正常工作。据我所知,我直接连接到ChromeDriver,而不是通过selenium服务器java进程(我使用了说明)。啊,好的,我明白了,这非常有用,谢谢。你知道当我调用
new webdriver.Builder()…build()时,ChromeDriver http服务器是否在我的原始脚本中启动了?我想不会,它完全消除了http,只是直接调用ChromeDriver API。Internet是否支持类似的功能,或者它只能通过HTTP驱动webdriver API?协议要求使用HTTP进行通信(第2.1节)。您可以编写一个启动本地进程的“隧道”。如果您这样做,请提交拉取请求!:)谢谢你的链接。目前,我正在使用带有“directConnect:true”选项的量角器,这样就不需要运行单独的http服务器。如果有机会的话,我可能会看看在Internet上添加directConnect模式会涉及到什么,但目前看来,量角器似乎可以完成这项工作。
'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();