WebDriverIO: подождите, пока ‹title› станет X

Есть ли шаблон с текущей библиотекой 2.0, который позволил бы мне подождать, пока заголовок текущей страницы не станет X? Чтобы приостановить работу WebDriver до тех пор, пока я не перейду на страницу, я хочу быть после нескольких перенаправлений?

Это было бы легко, если бы я мог driver.waitFor('title:contains("Google")');


person Breedly    schedule 04.06.2015    source источник


Ответы (3)


В Webdriver 3.0 теперь есть функция waitUntil, которую вы можете использовать для этого. http://webdriver.io/api/utility/waitUntil.html

driver.waitUntil(function() {
  return this.getTitle().then(function(title) {
    if(title === 'Google') {
       return true;
    }
  });
});
person jrader    schedule 08.08.2015

Преодолейте себя и свои CSS-селекторы. Если сомневаетесь, просто используйте XPATH.

driver.waitFor('//title[text() = "Google"]');

person Breedly    schedule 04.06.2015

С помощью webdriver 3.0+ вы также можете добавить настраиваемую команду браузера где-нибудь в модуль, совместно используемый все ваши тесты:

browser.addCommand('waitForTitle', function (title, timeout) {
    browser.waitUntil(function () {
        return browser.getTitle() === title;
    }, timeout | 3000);
});

Затем вызовите его из своего тестового кода:

it('should navigate to login page', function () {
    browser.click('.login-button');
    browser.waitForTitle('Login');
});
person Lorenzo Polidori    schedule 30.03.2017