登录
首页 >  Golang >  Go问答

为什么 Promise 在 golang chromedp 中不起作用

来源:stackoverflow

时间:2024-04-18 09:21:36 366浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《为什么 Promise 在 golang chromedp 中不起作用》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我实际上尝试在 golang chromedp 中执行此代码,但不起作用

const inlinejavascript = `
    var textarea = document.createelement('textarea');
    textarea.setattribute('id', 'recaptcha-token-container');
    textarea.style.display = 'display:none;'
    document.body.appendchild(textarea);

    grecaptcha.execute('site_key', { action: 'login' }).then(function(token) {
        textarea.value = token;
        textarea.style.display = ''
    });
`
chromedp.EvaluateAsDevTools(inlineJavascript, &token),
chromedp.WaitVisible(`#recaptcha-token-container`),
chromedp.Value(`#recaptcha-token-container`, &token),

应用程序等待文本区域,.then 不工作并且文本区域 never 显示。


解决方案


WaitVisible 等待您的元素可见。

在您的 textarea.style.display = 'display:none;' 行中,css 样式无效,因此被忽略,这意味着这是您的元素可见的点。 该行应该是

textarea.style.display = 'none'

所以 waitvisibledocument.body.appendchild(textarea); 运行后立即返回,这意味着它之后的所有内容都不会影响 token

当您更改不正确的 css 时,它应该可以工作,因为该元素仅在 promise 运行后才可见

到这里,我们也就讲完了《为什么 Promise 在 golang chromedp 中不起作用》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>