Я пытаюсь проверить, что селектор НЕ присутствует в cucumberjs / puppeteer. Как вы используете утверждение бросков с помощью cucumber-assert?
Я работаю над автоматизацией тестирования, чтобы поддержать тестирование внешнего интерфейса ember. Я использую cucumberjs, puppeteerjs и cucumber-assert.
Ранее я использовал следующее:
if (await page.waitForSelector('[data-test-text-title-refunded-widget-console="true"]')) {
let textContentOfElement = await page.evaluate(() => document.body.querySelector('[data-test-text-title-refunded-widget-console="true"]').textContent);
return assert.equal(textContentOfElement, widgetTitle, `title with text ${ widgetTitle } is not present`);
}
, который работает, когда я проверяю, что элемент существует и текст правильный.
Для моего текущего утверждения я использовал следующие команды throws assert из пакета cucumber-assert npm:
assert.throws(someFunctionThatThrows).then(callback);
Я не уверен, как обращаться с функцией обратного вызова - у меня пока есть следующее.
const assert = require('cucumber-assert');
return assert.throws(await page.waitForSelector('[data-test-text-title- import-payment-file-widget-console="true"]'))
.then(function(err) {
});
я должен вернуть ошибку в обратном вызове?
* ОБНОВЛЕНИЕ *
Я считаю, что нашел другой подход к решению моей проблемы. Здесь, должно быть, у кого-то еще будет такая же проблема в будущем.
if (await page.$('[data-test-text-title-import-payment-file-widget-console="true"]', { timeout: settings._30000 }) === null) {
return Promise.resolve();
}
return Promise.reject('Error: The widget is present');