Javascript 带Selenium的Powershell:错误:元素不可交互

Javascript 带Selenium的Powershell:错误:元素不可交互,javascript,powershell,selenium,Javascript,Powershell,Selenium,我需要用一个值更新textarea。 下面的代码抛出一个错误“元素不可交互”。这是因为文本区域有“display:none”。如果我手动删除单词NONE,然后再次运行脚本,它工作得很好,并且能够设置textarea的值 $browser = Start-SeChrome $url = "https://www.freepik.com/profile/login" $browser.Navigate().GoToURL($url) $CaptchaResponse = &qu

我需要用一个值更新textarea。 下面的代码抛出一个错误“元素不可交互”。这是因为文本区域有“display:none”。如果我手动删除单词NONE,然后再次运行脚本,它工作得很好,并且能够设置textarea的值

$browser = Start-SeChrome
$url = "https://www.freepik.com/profile/login"
$browser.Navigate().GoToURL($url)

$CaptchaResponse = "03AGdBq27yHAQ62QjKrtg"
ForEach ($TextArea_Element in (Find-SeElement -Driver $browser -TagName TextArea))
   {
   if ($TextArea_Element.GetAttribute('id') -eq "g-recaptcha-response") {$TextArea_Element.SendKeys($CaptchaResponse)}   
   Break
   }   
因此,唯一可用的选项是使用Javascript,这样我就可以直接与DOM交互()。所以我必须这样做:

$browser.executeScript("document.getElementById('g-recaptcha-response').value = $CaptchaResponse")
$browser.executeScript("___grecaptcha_cfg.clients[0].L.L.callback($CaptchaResponse)")

但现在我得到了一组不同的错误:javascript错误:无效或意外的令牌

尝试按如下方式编辑代码,以使用变量执行js:

$browser.executeScript("document.getElementById('g-recaptcha-response').value = arguments[0];", $CaptchaResponse)
和第一行一样,您应该提取变量并替换为参数[0]

$browser.executeScript("___grecaptcha_cfg.clients[0].L.L.callback('arguments[0]');", $CaptchaResponse)
您可以像这样执行JS,使用
参数
将变量传递到JavaScript中:

$new_style = "display: block; left: 20px;"
$browser.executeScript("arguments[0].style='arguments[1]';", $element, $new_style)

你的命令在第一行非常有效。你能帮我接第二行吗。抱歉,我对javascript的了解不好-$browser.executeScript(“\uuuuuu grecaptcha\u cfg.clients[0].L.callback($CaptchaResponse)”)@hdsouza我编辑了我的答案。希望对你有帮助:)谢谢云。当我运行第二个命令时,我得到一个错误“调用“ExecuteScript”时出现“2”参数的异常:”javascript错误:无法读取未定义的属性“L”。我不确定这个命令做什么,但我编辑了第二个命令的答案。你能再试一次吗?也许为了让这更简单,我如何执行这个javascript行___grecaptcha_cfg.clients[0]“使用powershell并保存到变量。我已使用运行该命令时在google开发工具中看到的屏幕截图更新了该问题