Я пытаюсь создать тестовый скрипт, который будет проходить через мой сайт, нажмите ссылку и откройте новую вкладку на другой сайт, заполните форму и отправьте ее обратно. оригинальный веб-сайт, однако каждый пример, на который я смотрел и пытался, не работает для меня. Страница запускается до тех пор, пока не откроется новое окно, а затем новое окно сидит там около 5 секунд, и все закрывается. Вот что я получил:Casperjs: Открыть новое окно/вкладка
var x = require('casper').selectXPath;
casper.options.viewportSize = {width: 1920, height: 1075};
casper.on('page.error', function(msg, trace) {
this.echo('Error: ' + msg, 'ERROR');
for(var i=0; i<trace.length; i++) {
var step = trace[i];
this.echo(' ' + step.file + ' (line ' + step.line + ')', 'ERROR');
}
});
casper.test.begin('Resurrectio test', function(test) {
casper.start('https://mywebsite1/abc/default.asp');
casper.waitForSelector("form[name=FormSize] input[name='a']",
function success() {
test.assertExists("form[name=FormSize] input[name='Nickname']");
this.click("form[name=FormSize] input[name='Account']");
},
function fail() {
test.assertExists("form[name=FormSize] input[name='Nickname']");
});
casper.waitForSelector("input[name='Nickname']",
function success() {
this.sendKeys("input[name='Nickname']", "abcco40");
},
function fail() {
test.assertExists("input[name='Nickname']");
});
casper.waitForSelector("form[name=FormSize] input[name='Username']",
function success() {
test.assertExists("form[name=FormSize] input[name='Username']");
this.click("form[name=FormSize] input[name='Username']");
},
function fail() {
test.assertExists("form[name=FormSize] input[name='Username']");
});
casper.waitForSelector("input[name='Username']",
function success() {
this.sendKeys("input[name='Username']", "k_csr");
},
function fail() {
test.assertExists("input[name='Username']");
});
casper.waitForSelector("form[name=FormSize] input[name='Password']",
function success() {
test.assertExists("form[name=FormSize] input[name='Password']");
this.click("form[name=FormSize] input[name='Password']");
},
function fail() {
test.assertExists("form[name=FormSize] input[name='Password']");
});
casper.waitForSelector("input[name='Password']",
function success() {
this.sendKeys("input[name='Password']", "kcsr");
},
function fail() {
test.assertExists("input[name='Password']");
});
casper.waitForSelector("form[name=FormSize] input[type=submit][value='Logon']",
function success() {
test.assertExists("form[name=FormSize] input[type=submit][value='Logon']");
this.click("form[name=FormSize] input[type=submit][value='Logon']");
},
function fail() {
test.assertExists("form[name=FormSize] input[type=submit][value='Logon']");
});
/* submit form */
casper.waitForSelector(x("//a[normalize-space(text())='One Time Payment']"),
function success() {
test.assertExists(x("//a[normalize-space(text())='One Time Payment']"));
this.click(x("//a[normalize-space(text())='One Time Payment']"));
},
function fail() {
test.assertExists(x("//a[normalize-space(text())='One Time Payment']"));
});
casper.waitForPopup(/https:\/\/secondwebsite\/home\/three\.aspx/).withPopup(/https:\/\/secondwebsite\/home\/three\.aspx/, function(){
popup.close();
});
casper.then(function() {
});
/* submit form */
casper.waitForSelector("form#aspnetForm input[type=button][value='Back']",
function success() {
test.assertExists("form#aspnetForm input[type=button][value='Back']");
this.click("form#aspnetForm input[type=button][value='Back']");
},
function fail() {
test.assertExists("form#aspnetForm input[type=button][value='Back']");
});
casper.waitForSelector(x("//a[normalize-space(text())='Document Manager']"),
function success() {
test.assertExists(x("//a[normalize-space(text())='Document Manager']"));
this.click(x("//a[normalize-space(text())='Document Manager']"));
},
function fail() {
test.assertExists(x("//a[normalize-space(text())='Document Manager']"));
});
casper.run(function() {test.done();});
});
Какая версия PhantomJS/slimerJS вы используете? Где определяется 'popup'? –
phantom is 1.9.8 slimer is 0.9.6 Забыл удалить всплывающее окно, если я попробую любую другую команду, он просто игнорирует его, окно зависает, пока оно не сработает. Он даже не активирует следующие шаги. – Bojan
Вы можете видеть, что подсветка синтаксиса имеет проблемы с URL-адресами окна. Вы пытались с правильными регулярными выражениями? '/ https: \/\/secondwebsite \ .tld \/home \/three \ .aspx /' Если это не поможет Пожалуйста, зарегистрируйтесь на 'resource.error',' page.error', 'remote.message' и события 'casper.page.onResourceTimeout' ([Пример] (https://gist.github.com/artjomb/4cf43d16ce50d8674fdf)). Возможно, есть ошибки. –