Захват страницы оценки ответа в переменной в Pyppeteer - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь использовать page.evaluate в Pyppeteer и перехватить js ответ скрипта, но я не могу перехватить его . В следующем коде я пытаюсь захватить результат, возвращаемый сценарием js в переменную размеров , но его захватывает как Нет

import asyncio
from pyppeteer import launch
async def hmm():
    browser = await launch(headless=False)
    page = await browser.newPage()
    await page.goto('https://jobs.chegg.com')
    dimensions = await page.evaluate("""async () => {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/3.1.2/axe.min.js';
        document.head.appendChild(script);
        var result = new Promise((resolve, reject) => {
            axe.run(document, {
            runOnly: {
                type: "tag",
                values: ["wcag2a", "wcag2aa", "best-practice"]
            },
            "rules": {
                "skip-link": { enabled: false }
            }
            }, function(err, results) {
            if (err) throw err;
                resolve(results);
            });
        });
        let test = await result.then((res) => {
            return res;
        }).catch(err => {
            console.log(err);
        });

        console.log(test); 
        return test;
        }

    """)
    print(dimensions) # None
    return dimensions
asyncio.get_event_loop().run_until_complete(hmm())

Примечание : - Откройте консоль на любом веб-сайте и запустите сценарий js, затем возвращается объект / словарь.

Пожалуйста, предложите обходной путь для этой проблемы.

...