Проблема оказалась простым упущением с моей стороны: с большинством команд, таких как execute
, Nightwatch возвращает красиво отформатированный объект, который содержит значение. Однако простая отправка литерального значения через обратный вызов не делает этого.
Поэтому лучше всего отправить объект в утверждение с полем value
, например:
callback.call(self, true);
Должно стать:
const result = {
value: true
};
callback.call(self, result);
Примечание: В некоторых случаях возможно просто указание значения в утверждении, например:
this.value = function(result = {}) {
return result.value || false;
};
=>
this.value = function(result = {}) {
return result || false;
};
Однако в этом случае, когда аргумент равен false
, он сломает утверждение об отрицании (когда ожидает, что аргумент будет ложным).