testplane icon indicating copy to clipboard operation
testplane copied to clipboard

Поддержка puppeteer

Open DimitryDushkin opened this issue 6 years ago • 2 comments

Привет! А есть какие-то планы на поддержку puppeteer?

DimitryDushkin avatar Aug 13 '19 13:08 DimitryDushkin

Привет

В планах нет, но если очень хочется, то мы принимаем PR-ы ;)

sipayRT avatar Aug 13 '19 14:08 sipayRT

в 6й версии wdio под капотом есть поддержка devtools protocol. работает только для хрома и nightly firefox и только локально. когда\если гермиона обновится, неявно такая поддержка скорее всего появится и у неё.

ghost avatar Jul 28 '20 10:07 ghost

Простите, что забыли отписаться здесь. Да, поддержка puppeteer уже давно есть в гермионе. Пример использования:

it('should mock google.com using puppeteer api', async ({browser}) {
    const puppeteer = await browser.getPuppeteer(); // получаем инстанс puppeteer-а
    const [page] = await puppeteer.pages(); // получаем первую открытую страницу

    await page.setRequestInterception(true); // активируем перехват всех запросов
    page.on('request', async (request) => {
        if (request.url() !== 'https://google.com/') {
            return request.continue(); // если урл запроса не матчится на https://google.com/, то выполняем запрос (т.е. не перехватываем его)
        }

        return request.respond({body: 'hello world'}); // отвечаем своими данными
    });

    await browser.url('https://google.com'); // здесь можно было бы вызвать и `page.goto('https://google.com')`, но лучше вызывать `url`, так как в большинстве плагинов есть обертки команды `url`, добавляющие дополнительную логику.
});

sipayRT avatar Mar 15 '23 14:03 sipayRT