Подтвердить что ты не робот

Почему я должен использовать browser.sleep во время написания тестов транспортира

Мой первый запуск на тестах E2E. Я пытаюсь переварить чьи-то еще тесты на транспортир.

Проблема: Есть много browser.driver.sleep, и это кажется хрупким.

Цель: не использовать browser.driver.sleep

Вопрос: Что такое лучший подход к browser.driver.sleep? Что-то менее хрупкое, как обещание или что-то, что я не знаю о LOL?

var config = require('../../protractor.conf.js').config;
describe('this Homepage Body Tests', function(){
browser.driver.get(config.homepageUrl);

it("should open find a clinic page", function(){
  // page loads :: want to fix this random wait interval 
  browser.driver.sleep(2000);
  browser.ignoreSynchronization = true;

  var string = 'clinic';
  var main = '.search-large-text';
  var link = element(by.cssContainingText('.submenu li a', string));

  link.click().then(function() {
    // page reloads :: want to fix this random wait interval
    browser.driver.sleep(3000);
    var title = element(by.cssContainingText(main, string));
    expect(title.getText()).toBe(string);
  });
});
});
4b9b3361

Ответ 1

Так как включен ignoreSynchronization, вы не можете использовать waitForAngular(), что было бы решением в случае тестирования angular.

Лучшим решением здесь было бы установить тайм-аут загрузки страницы:

browser.manage().timeouts().pageLoadTimeout(10000);  // 10 seconds

См. также соответствующие темы в явных ожиданиях и таймаутах: