Используя protractor-cucumber-framework
, я пытаюсь нажать кнопку сто раз за один шаг «Когда». Однако это приведет к тайм-ауту со значением тайм-аута по умолчанию 5000 мс. Я бы предпочел не менять это значение по умолчанию, используя:
var config = function() {
this.setDefaultTimeout(60*1000);
};
module.exports = config;
Это работает, но я бы предпочел установить тайм-аут для этого единственного шага следующим образом:
this.When(/^I click on the "([^"]*)" button$/, {timeout: 60*1000}, function(text, callback)
{
// Click the button 100 times
var button = element(by.partialButtonText('Widget'));
for(j = 0; j < i; j++) {
button.click();
}
callback();
});
Согласно ознакомлению cucumber-js, это должно работать, но по-прежнему приводит к:
Error: Step timed out after 5000 milliseconds
at Timer.listOnTimeout (timer.js:92:15)
Любые идеи о том, почему это не работает?
РЕДАКТИРОВАТЬ: это действительно сработало. Тем не менее, я использовал его в неправильном шаге. Позвонить click()
сто раз не так уж и много времени. Время ожидания истекает на шаге после него:
this.Then(/^a new widget is created$/, {timeout: 60 * 1000}, function(callback) {
// Check if 100 widgets are created
});
Теперь кто-нибудь может объяснить, почему необходим длительный тайм-аут на этапе после всех вызовов click
? Есть ли более элегантный способ заставить огурец ждать, пока не закончатся нажатия кнопок?
Given
, а неWhen
. Я не эксперт по огурцам, но за те небольшие копания, которые я проделал, я не смог найти ничего, что указывало бы на то, чтоWhen
примет тайм-аут так, как вы пытаетесь его использовать. - person CodingGorilla   schedule 28.03.2016