首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“‘coroutine”对象没有属性get \\ pyppeteer

“‘coroutine”对象没有属性get \\ pyppeteer
EN

Stack Overflow用户
提问于 2020-01-27 09:05:05
回答 2查看 4.8K关注 0票数 1

在python中,使用pyppeteer,我正在打开一个网页,在其控制台中运行JS脚本,并试图捕获变量e中的结果,但我得到了以下错误。

代码语言:javascript
复制
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代码:-

代码语言:javascript
复制
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

有人能给我建议怎么解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2020-02-20 13:57:36

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()

在您的代码中的某个地方围绕着这个函数

票数 1
EN

Stack Overflow用户

发布于 2020-02-10 19:57:51

需要更多的背景。

您的错误没有引用脚本中的任何代码,但是有对不可见对象的引用。

听起来你要么错过了某个地方的“等待”,要么你需要打电话给一家aysnc工厂。

一旦我知道得更多我就能帮上忙了。

我还建议将Asyncio升级到3.8,因为Asyncio对python来说是比较新的,它不会有什么坏处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59927874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档