Кукловод - лучшие стандартные практики - PullRequest
0 голосов
/ 25 июня 2018

Каков наилучший (или стандартный) способ выполнения общих операций над кукловодом?

Учитывайте следующее:

<div class="C1">
    <img alt="Bla Bla" class="C2" scrset="lots of stuff here" scr="THIS_IS_WHAT_I_WANT">

Я хочу получить доступ к тексту src.Каков наилучший способ сделать это?

Или другая ситуация, когда у меня есть это на веб-странице:

<a class="D1 D2 D3" role="button" </a>

И я хочу проверить существование (и небытие) такого элемента, каквышеуказанная кнопка.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вторая часть моего ответа была исправлена ​​Карстеном, и я ему очень благодарен!

Однако его решение для первой части не сработало.

Вот как я его получилна работу:

const values = await page.evaluate(
        () => [...document.querySelectorAll('.C2')]
        .map(element => element.getAttribute('src'))
    );
0 голосов
/ 25 июня 2018

Ваш первый пример (получение текста src):

const puppeteer = require('puppeteer')

async function run() {
    const browser = await puppeteer.launch()
    const page = await browser.newPage()

    await page.goto(`insertYourURLhere.com`, {
        timeout: 0,
        waitUntil: ['domcontentloaded']
    })
    
    // getting a handle on the div first
    const outerDiv = await page.$('div.C1')
    // proceeding from the selected div
    const scrAttribut = await outerDiv.$eval('img.C2', el => el.getAttribute('scr'))

    console.log(scrAttribut)
    
    browser.close()
}

run()

Ваш второй пример (проверка существования элемента):

Вы используете тот же метод, который показан выше для внешнегоdiv, чтобы найти вашу кнопку:

page.$(selector)

Затем вы проверяете возвращаемое значение.

Если ни один элемент не соответствует селектору, возвращаемое значение разрешается в null.

От: Документация кукловода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...