Кукловод не будет нажимать на элемент

Попытка заставить 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') 

Хорошо работает в тех случаях, когда нажатие вызывает навигацию.

Другие вопросы по тегам