Javascript 硒+;同时运行多个测试的节点
情况:Javascript 硒+;同时运行多个测试的节点,javascript,node.js,selenium,selenium-webdriver,automated-tests,Javascript,Node.js,Selenium,Selenium Webdriver,Automated Tests,情况: 我用不同版本的Microsoft Internet Explorer安装了4台计算机,并将它们连接到selenium网格(集线器) 我可以在节点中使用SeleniumWebDriver,并针对不同的浏览器/机器组合进行测试 Selenium网格执行起来没有任何问题 但是,当我多次调用Getscreen()函数时,一切正常,直到其中一个测试服务器出现问题(如超时) 错误被捕获为 Client.controlFlow().on('uncaughtException',函数(e){… 在函
- 我用不同版本的Microsoft Internet Explorer安装了4台计算机,并将它们连接到selenium网格(集线器)
- 我可以在节点中使用SeleniumWebDriver,并针对不同的浏览器/机器组合进行测试
- Selenium网格执行起来没有任何问题
Client.controlFlow().on('uncaughtException',函数(e){…
在函数中
但奇怪的是,这个监听器并没有在函数完成运行时被破坏。所以,如果我已经调用函数50次,而test51失败,我会得到51条错误消息
我的节点代码如下所示:
var fs = require('fs');
var webdriver = require('selenium-webdriver');
var HubIP = '192.168.1.201';
var Resolutions = [{
width: 1920,
height: 1080
}, //0
{
width: 1680,
height: 1050
}, //1
{
width: 1600,
height: 900
}, //2
...
];
function writeScreenshot(data, name) {
name = name || 'ss.png';
var screenshotPath = '../tests/';
fs.writeFileSync(screenshotPath + name, data, 'base64');
};
function Getcreen(urltoget,resolutionN,WaitN,browsernameN,TableRowID)
{
var xCapabilities = {};
if (browsernameN=="ie8") { xCapabilities = { browserName: 'internet explorer', version: '8', platform: 'WINDOWS' }; }
if (browsernameN=="ie9") { xCapabilities = { browserName: 'internet explorer', version: '9', platform: 'WINDOWS' }; }
if (browsernameN=="ie10") { xCapabilities = { browserName: 'internet explorer', version: '10', platform: 'WINDOWS' }; }
if (browsernameN=="ie11") { xCapabilities = { browserName: 'internet explorer', version: '11', platform: 'WINDOWS' }; }
if (browsernameN=="chrome") { xCapabilities = { browserName: 'chrome', platform: 'WINDOWS' }; }
if (browsernameN=="firefox") { xCapabilities = { browserName: 'firefox', platform: 'WINDOWS' }; }
var Client = new webdriver.Builder().usingServer('http://'+HubIP+':4444/wd/hub').withCapabilities(xCapabilities).build();
Client.controlFlow().on('uncaughtException', function(e) {
console.error('**** ERROR ***** \n ' + e);
});
Client.manage().timeouts().pageLoadTimeout(parseInt(WaitN,10));
Client.manage().timeouts().setScriptTimeout(10000);
Client.manage().window().setSize(Resolutions[parseInt(resolutionN,10)].width,Resolutions[parseInt(resolutionN,10)].height);
Client.get(urltoget).then(function() {
Client.getTitle().then(function(title) { console.log(browsernameN+": " + title); });
Client.takeScreenshot().then(function(data) {
writeScreenshot(data, TableRowID + '-'+browsernameN+'.png');
});
Client.quit();
}