Когда сценарий будет выполнен, он никогда не достигнет линии, где говорится: «Я НИКОГДА НЕ БУДУТ ВЫПОЛНИТЬ».CasperJS (движок SlimerJS), шаг не продолжается после оценки
/*********/
var casper = require('casper').create(
{
//clientScripts: ["includes/jquery-1.11.1.min.js"],
waitTimeout: 15000,
stepTimeout: 5500,
verbose: true,
logLevel: 'debug',
viewportSize: {
width: 1680,
height: 1050
},
onRunComplete: function() {
// Don't exit on complete.
},
onWaitTimeout: function() {
logConsole('Wait TimeOut Occured');
this.capture('xWait_timeout.png');
this.exit();
},
pageSettings: {
"ignoreSslErrors": true
},
onStepTimeout: function (self, m) {
}
}
);
var subjectParameter = casper.cli.get("subject");
var timeoutForScreenshot = casper.cli.get("timeoutForScreenshot");
casper.options.stepTimeout = timeoutForScreenshot + 500;
casper.on('step.timeout', function (request) {
console.log("---------------STEP:timed out---------------------:" + request);
request.abort();
});
casper.start('https://email.t-online.de', function() {
casper.userAgent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko)');
casper.waitForSelector('input[name=pw_usr]', function() {
this.fillSelectors('form[name="login"]', {
'input[name=pw_usr]': '[email protected]',
'input[name=pw_pwd]': 'somePassword'
});
}, function() {
casper.log('no login-form found', 'error');
casper.exit();
});
casper.then(function() {
this.click("#pw_submit");
});
casper.waitForSelector('#rowListContainerTable', function() {
//abort.request();
this.evaluate(function getElementInDom(term) {
var els = document.getElementsByTagName('span');
var len = els.length;
for (var i = 0; i < len; i++) {
if (els[i].innerHTML.indexOf(term) != -1) {
els[i].click();
abort.request();
}
}
}, subjectParameter);
this.then(function() {
this.echo("I WILL NEVER BE EXECUTED");
});
this.wait(8000, function() {
this.capture('tonline - ' + subjectParameter + '.png', {
top: 0,
left: 0,
width: 1680,
height: 1050
});
casper.log('mail found', 'error');
//casper.exit();
});
}, function() {
casper.log('login failed', 'error');
casper.exit();
});
});
casper.run();
"subjectParameter" является строкой
"timeoutForScreenshot" является целочисленное значение
Скрипт входа в «https://email.t-online.de» и ищем E-Mail, где subject == «subjectParameter», он открывает почту и должен сделать снимок экрана, но после этого все остальные «шаги» после «getElementInDom-Step» не будут выполнены.
Есть ли способ перейти к следующему «шагу» после шага.
'abort.request();' приведет к ошибке, если 'abort' не является глобальным свойством в контексте страницы, а цикл for не будет выполняться дальше. Также см. [Здесь] (http://stackoverflow.com/q/15739263/1816580) как щелкнуть элемент в контексте страницы. Это не должно быть проблемой для slimerjs. –