Транспортир: поймать AssertionError

Я использую Protractor с Chai, как и было обещано, для создания инструмента тестирования на основе JavaScript, и я получаю сообщение об ошибке

AssertionError: expected 'http://localhost:8888/test/homepage.php' to equal 'http://localhost:8888/test/my_homepage.php'

пока я проверяю URL с этим определением шага:

this.Then(/^The url of the page should be "([^"]*)"$/, function(myUrl, callback){
    expect(browser.getCurrentUrl()).to.eventually.equal(myUrl);

    callback();
  });

Я хотел бы поймать эту ошибку, чтобы использовать другую функцию обратного вызова, как я могу это сделать? Я пытался использовать блок try-catch, но, похоже, он не работает. Я даже не могу понять, если AssertionErrors генерируются Protractor, можете ли вы мягко дать мне объяснение по этому поводу?

заранее спасибо

1 ответ

Я не мог найти ничего, что могло бы отловить ошибки и сделать что-то еще. Если предложение @alecxe из комментариев работает, то это должен быть ваш ответ, иначе почему бы просто не сделать

browser.getCurrentUrl().then(function(url) {
    if(url === myUrl) {
       callback();
    } else {
       callback('something went wrong'); 
    }
});

или это не сработает?

try {
  expect(browser.getCurrentUrl()).to.eventually.equal(myUrl);
  callback();
} catch(e) {
  callback('something went wrong ')); 
}
Другие вопросы по тегам