у объекта «сопрограмма» нет атрибута get || pyppeteer - PullRequest
1 голос
/ 27 января 2020

В python, используя pyppeteer , я открываю веб-страницу и , запускаю скрипт JS в своей консоли и пытаюсь запишите результат в переменную e, но я получаю следующую ошибку:

Traceback (most recent call last):
  File "/home/ndaruto/anaconda3/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/naruto/anaconda3/lib/python3.7/site-packages/django/utils/deprecation.py", line 96, in __call__
    response = self.process_response(request, response)
  File "/home/naruto/anaconda3/lib/python3.7/site-packages/django/middleware/clickjacking.py", line 26, in process_response
    if response.get('X-Frame-Options') is not None:
AttributeError: 'coroutine' object has no attribute 'get'
/home/naruto/anaconda3/lib/python3.7/pathlib.py:704: RuntimeWarning: coroutine 'hmm' was never awaited


return self._str
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Ниже приведен код python: -

async def hmm(request):
browser = await launch()
page = await browser.newPage()
await page.goto('http://jobs.chegg.com')
ans = await page.evaluate('''() => {
    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);
    setTimeout(function(){
    axe.run(document, {
        runOnly: {
        type: "tag",
        values: ["wcag2a", "wcag2aa", "best-practice"]
        },
        "rules": {
        "skip-link": { enabled: false }
        }
    }, function(err, results) {
        if (err) throw err;
        console.log(results);
    });
    }, 1000);
}''')
print("ANS IS", ans)
return 1

Может кто-нибудь подсказать, пожалуйста, как это исправить?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

AttributeError: 'coroutine' object has no attribute 'get' /home/naruto/anaconda3/lib/python3.7/pathlib.py:704: RuntimeWarning: coroutine 'hmm' was never awaited это означает, что вы вызываете hmm(request).get()
вместо
r = await hmm(request) r.get()
где-то в вашем коде вокруг этой функции

0 голосов
/ 10 февраля 2020

Нужно больше контекста.

Ваша ошибка не ссылается ни на какой код в сценарии, но есть ссылки на невидимые объекты.

Похоже, вы либо пропустили «ожидание» где-то, либо вам нужно вызвать что-то с aysn c factory.

Я могу помочь с этим, как только узнаю больше.

Я бы также предложил обновить до 3.8, так как Asyncio несколько нова до python и не может больно.

...