-1

我实际上试图在 中执行此代码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),

应用程序等待 textarea,.then不工作和 textareanever显示。

4

1 回答 1

1

WaitVisible等到您的元素可见。

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

textarea.style.display = 'none'

所以在运行WaitVisible之后的那一刻返回document.body.appendChild(textarea);,这意味着它之后的所有内容都不会影响token.

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

于 2019-12-31T09:50:30.603 回答