Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中找到执行javascript的可变html元素_Javascript_Python_Bots_Recaptcha_2captcha - Fatal编程技术网

如何在python中找到执行javascript的可变html元素

如何在python中找到执行javascript的可变html元素,javascript,python,bots,recaptcha,2captcha,Javascript,Python,Bots,Recaptcha,2captcha,我正在尝试使用2Captcha服务来解决h验证码V2 工作原理如下: 你得到一个值来解验证码 然后在HTML代码中找到一个textarea元素来插入该值(这是我的问题) 在该元素中插入值 您按下提交按钮,验证码被解决 首先,我将展示一个工作示例,然后我将展示我遇到的问题 这是查找和插入获得的值的HTML代码: textarea id="h-captcha-response" name="h-captcha-response" style="dis

我正在尝试使用2Captcha服务来解决h验证码V2

工作原理如下:

  • 你得到一个值来解验证码
  • 然后在HTML代码中找到一个textarea元素来插入该值(这是我的问题)
  • 在该元素中插入值
  • 您按下提交按钮,验证码被解决
  • 首先,我将展示一个工作示例,然后我将展示我遇到的问题

    这是查找和插入获得的值的HTML代码:

    textarea id="h-captcha-response" name="h-captcha-response" style="display: none;"></textarea>
    
    这正是让你从中受益的原因:

    这就是结果:

    最后你按下提交按钮,它就完成了。这个例子有效

    这是我的问题: 在我的例子中,HTML文档有一个变量ID,如下所示:

    <textarea id="h-captcha-response-0tesbrpxsk8" name="h-captcha-response" style="display: none;"></textarea>
    
    我在这里被绊住了,尝试了其他方法,但没有成功,因为我可能是因为我没有很好地实施这些解决方案,或者它们根本不起作用

    我将感谢您的一些见解,谢谢您尝试以下内容:

    const textarea=document.querySelector('[id^=“h-captcha-response-“]”)
    textarea.value=“这在textarea内部!”
    试试这个:

    const textarea=document.querySelector('[id^=“h-captcha-response-“]”)
    textarea.value=“这在textarea内部!”

    这将填写所有这些内容(recaptcha/hcaptcha):


    这将填写所有这些内容(recaptcha/hcaptcha):


    是的,使用querySelector()似乎更灵活,谢谢,但请注意,我使用的是python,我尝试了以下方法:
    insert\u solver='document.querySelector(\'[id^=“h-captcha-response-“]\')。innerHTML=“'+result+”;'
    驱动程序。执行脚本(插入解算器)
    否success@V-现金将
    innerHTML
    替换为
    value
    ,就像我在回答中写的那样。不,innerHTML/InnerText就在这里。@pguardiario您应该在这里使用.value作为参考:它不起作用的一个原因是验证码中的其他javascript。我确信谷歌在某种程度上保护了这种简单的操作。不,在这种情况下,值是错误的属性。但是innerHTML非常有效使用querySelector()似乎更灵活,谢谢,但请注意我使用的是python,我尝试了以下方法:
    insert\u solver='document.querySelector(\'[id^=“h-captcha-response-“]\')。innerHTML=“+result+”;'
    驱动程序。执行脚本(插入解算器)
    否success@V-现金将
    innerHTML
    替换为
    value
    ,就像我在回答中写的那样。不,innerHTML/InnerText就在这里。@pguardiario您应该在这里使用.value作为参考:它不起作用的一个原因是验证码中的其他javascript。我确信谷歌在某种程度上保护了这种简单的操作。不,在这种情况下,值是错误的属性。但是innerHTML可以工作,我得到了这个错误
    selenium.common.exceptions.JavascriptException:Message:javascript错误:意外的标记“…”
    我在没有。。。但随后又出现了另一个语法错误这在最新的chromiumYes中有效,显然有一个cloudlflare在后面做其他事情,所以很难看到结果。感谢您收到此错误
    selenium.common.exceptions.JavascriptException:Message:javascript错误:意外标记“…”
    我在没有。。。但随后又出现了另一个语法错误这在最新的chromiumYes中有效,显然有一个cloudlflare在后面做其他事情,所以很难看到结果。谢谢
    <textarea id="h-captcha-response-0tesbrpxsk8" name="h-captcha-response" style="display: none;"></textarea>
    
    document.getElementByTagName("textarea").innerHTML=".....
    
    driver.execute_script('''
      let [captcha] = arguments
      [...document.querySelectorAll('[name="h-captcha-response"],[name="g-recaptcha-response"]')].map(el => {
        el.innerHTML = captcha
      })
    ''', value)