Вопрос

Использование синтаксиса элемента (by.model ()), чтобы найти поле и текст ввода.

элемент (by.model ('sample_ad.id')). SendKeys («Batman»);

Получает исключение из Chromedriver:

Stacktrace:
     Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds
    at Error (<anonymous>)
==== async task ====
WebDriver.executeScript()
    at Protractor.waitForAngular (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:278:22)
    at Protractor.findElement (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:427:8)
    at Object.elementFinder.(anonymous function) [as sendKeys] (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:62:21)
    at null.<anonymous> (/Users/jon/dev/project_name/test/e2e/features/somedirectiveSpec.js:24:39)
    at /Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:54:12
==== async task ====
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:53:12)
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
.

Не уверен, почему это ломается, но транспортир кажется очень хрупким прямо сейчас ... У меня нет проблем, используя объект браузера, чтобы найти элементы, текст ввода и т. Д. ...

Любая помощь будет оценена

Редактирование: Если я изменим строку к следующему, я могу взаимодействовать с текстовым полем. Browser.driver.findelement (Protractor.by.id ('thumb_ad_id')). SendKeys («Batman»);

Это было полезно?

Другие советы

Надеюсь, это поможет другим ....

нашел это на Github (см. ссылки на ссылку).Этот вопрос, который я считаю, это сценарий, не возвращающийся, поэтому SendKeys не работал.Перед взаимодействием с DOM с помощью объектов транкторов (элемент, PTOR и т. Д.) Установите эту переменную:

BROWSER.GignorSynchronizzation= True;

Причина, по которой следующие работы - это потому, что она не полагается на async-вызовы, он просто напрямую взаимодействует с DOM и вставляет ключи в поле ввода. browser.driver.findelement (protractor.by.id ('sample_ad_id')). SendKeys («Batman»);

Причина, по которой мой звонок не работал ( Я верю ) - потому что был асинхронный звонок, который не возвращался вовремя. элемент (by.model ('samble_ad.id')). SendKeys («Batman»);

Ссылки: https://github.com/angular/protractor/issues/325 >

Похоже, ваш тест временно выходит.Тайм-аут по умолчанию для транспортировки составляет 11 секунд.

Попробуйте установить другой тайм-аут для этого теста:

it('should override timeout', function() {
  // Timeout of 30 seconds.
  element(by.model('sample_ad.id')).sendKeys('batman');
}, 30000)
.

Вы также можете переопределить тайм-аут для всех ваших тестов в файле конфигурации транспортировки.См. Этот файл конфигурации образец:

https://github.com/andresdominguez/Protractor-Meetup / Blob / Master / Protractor-config.js # L19

// Inside the protractor config file.
onPrepare: function() {
  // Override the timeout for webdriver.
  var ptor = protractor.getInstance();
  ptor.driver.manage().timeouts().setScriptTimeout(60000);
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top