Я пытаюсь использовать некоторых родных кукловодов с codeceptjs, чтобы найти все аспекты элемента, используя его идентификатор - PullRequest
0 голосов
/ 08 июля 2019

Я использую codeceptjs с кукловодом.

Теперь проблема, с которой я столкнулся, я либо не знаю, что это можно сделать внутри кукловода, либо я не уверен, как это сделать с местным кукловодом.

Я хочу нацелиться на элемент и получить всю информацию для этого элемента, затем сопоставить строку и получить некоторые определенные данные. У меня есть код, который работает на нативном кукловоде, но я не уверен, как его использовать в Codeceptjs.

Поскольку у Puppeteer есть файл помощника внутри codecptjs, я не просто хочу снова требовать кукловода, я бы просто направил запрос помощнику.

let match ='';
        const targetEls = await page.$$('#element');
        for(let target of targetEls)
        {
            const cell_content = await page.evaluate(el => el.innerHTML, target);
            let county = (cell_content.match(/string_to_match/g) || []).length;
            if(county === 2)
            {
                match = cell_content.match(/http:\/\/(\w*)\.(\w*)\/(\w*)\/(\d*)/gi).pop(); // searches for url within element info and pop it out.
                break;
            }
        }

Проблема, с которой я столкнулся, заключается в том, что await page.evaluate(el.innerHTML, target) не работает с codeceptjs, поскольку я не создал экземпляр кукловода в своем коде шагов. Тем не менее, это внутри кукловода helper.js

1 Ответ

0 голосов
/ 08 июля 2019

Не уверен, что ты хочешь. Опишите, пожалуйста, где находится код из вопроса.

page не описывается глобально, вы можете получить к нему доступ, используя объект page помощника Puppeteer.

Похоже, вы хотите создать метод в вашем пользовательском помощнике , где доступ к помощнику кукловода используется для получения его значения browser, как описано в помощниках кукловода doc :

const currentPage = this.helpers['Puppeteer'].page;
await currentPage.$$('#element'); // Get the url of the current page

Таким образом, ваш помощник будет включать метод, который вы описали в вопросе, и вы можете вызвать его из теста.

...