Кукловод не будет нажимать на элемент
Попытка заставить Puppeteer перемещаться по моей странице входа в систему, что приведет к автоматическому тестированию на главной странице моего сайта. Все это работает, пока не достигнет 'waitFor('#idSIButton9');'. Кукловод успешно вводит пароль и имя пользователя, но не может выбрать кнопку отправки (#idSIButton9). Есть идеи, что здесь может пойти не так? Дайте мне знать, если вам, ребята, нужна дополнительная информация. Спасибо:)
const puppeteer = require('puppeteer');
const { defineSupportCode } = require('cucumber')
defineSupportCode(({ Before, Given, When, Then }) => {
Before({ timeout: 60 * 1000 }, async function testCase() {
this.browser = await puppeteer.launch({ headless: false });
this.page = await this.browser.newPage();
await this.page.setViewport({width: 1024, height: 768});
await this.page.goto('http://localhost:3000', {waitUntil: 'networkidle2'});
await this.page.screenshot({ path: 'test_artifacts/img/load.png', fullPage: true });
await this.page.waitFor('button');
await this.page.click('button');
await this.page.waitFor('#i0116');
await this.page.type('#i0116', 'username');
await this.page.waitFor('#i0118');
await this.page.type('#i0118', 'password');
await this.page.waitFor('#idSIButton9');
await this.page.click('#idSIButton9');
})
2 ответа
Решение
Кажется довольно очевидным, но ожидание перед нажатием работает с числовым значением:
await this.page.waitFor(2000);
await this.page.click('#idSIButton9');
await this.page.waitForNavigation();
Я, кажется, найти, как ответ выше
page.waitForNavigation('load')
Хорошо работает в тех случаях, когда нажатие вызывает навигацию.