我正在尝试无头地运行我的测试并对我的测试套件进行分片以并行运行它们。在我的本地机器上,它们并行运行,但在这种无头设置中,它们一个接一个地运行。我正在使用docker图像作为网络驱动程序和量角器。
我正在使用webnicer-protractor docker image:https://hub.docker.com/r/webnicer/protractor-headless/ 并使用elgalu / selenium作为Web驱动程序。
我运行的conf.js看起来像这样:
exports.config = {
//Headless
//seleniumAddress: 'http://localhost:4444/wd/hub',
seleniumAddress: 'http://localhost:24444/wd/hub',
capabilities: {
browserName: 'chrome',
shardTestFiles: true,
maxInstances: 2
},
specs: ['Suites/AccountSettingsSuite.js', 'Suites/CloneDashboardSuite.js']
}
答案 0 :(得分:3)
execute_query
另一个很酷的事情是,窗户的尺寸不仅限于当前的显示器,真正无头的意思可以和测试所需的一样大。
某些webdriver功能在那里不起作用,例如:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['headless', 'window-size=1920,1080']
}
}
您必须识别并删除不受支持的功能,除此之外,chrome headless对我来说非常有用。
重要的是要注意,例如browser.manage().window().setPosition();
browser.manage().window().setSize();
browser.manage().window().maximize();
可能会触发此错误:
sendKeys
如果没有真正的显示或Chrome端没有Xvfb Protractor。
更新 ChromeDriver until this is fixed修正了Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb
错误