在 python 中执行 Javascript 的语法
Syntax executing Javascript in python
我正在执行 python 中的 javascript 代码,我在语法方面遇到了一些问题。
我怀疑问题出在 (") 和 (') 符号上。
更多解释:
为了解决“我是人类”验证码,我必须在 html 文档中插入一个值。
1º 我得到一个值:
value = get_value()
现在我必须将该值(字符串)插入到网页的 html 代码中:
insert_solver = 'document.getElementByXpath("//textarea[@name="h-captcha-response"]").innerHTML="' + value + '";' driver.execute_script(insert_solver)
当我执行脚本时出现此错误:
selenium.common.exceptions.JavascriptException: Message: javascript error: missing ) after argument list
像本例中那样执行脚本不会出现任何错误:
insertar_solucion = 'document.getElementById("g-recaptcha-response").innerHTML="' + respuesta_solver + '";'
所以我怀疑是添加 (") 和 (') 符号的问题
这就是我想要的结果,从这个
为此:
没有方法execute
而是execute_script
。
您可能会这样做:
element = driver.find_element_by_id("g-recaptcha-response")
driver.execute_script("yout JS stuff here with element[0]", element)
更新 1:
您可以像这样分解字符串:
element = driver.find_element_by_id("g-recaptcha-response")
inner_html = element.get_attribute('innerHTML')
final_str = inner_html + value;
我认为这很好用。传递包含引号的字符串很棘手。
pre = 'document.getElementByXpath('
x_path = '//textarea[@name="h-captcha-response"]'
post = f').innerHTML="{value}";'
# alternative: post = ').innerHTML="' + value + '";'
insert_solver = pre + x_path + post
driver.execute_script(insert_solver)
我正在执行 python 中的 javascript 代码,我在语法方面遇到了一些问题。 我怀疑问题出在 (") 和 (') 符号上。
更多解释:
为了解决“我是人类”验证码,我必须在 html 文档中插入一个值。 1º 我得到一个值:
value = get_value()
现在我必须将该值(字符串)插入到网页的 html 代码中:
insert_solver = 'document.getElementByXpath("//textarea[@name="h-captcha-response"]").innerHTML="' + value + '";' driver.execute_script(insert_solver)
当我执行脚本时出现此错误:
selenium.common.exceptions.JavascriptException: Message: javascript error: missing ) after argument list
像本例中那样执行脚本不会出现任何错误:
insertar_solucion = 'document.getElementById("g-recaptcha-response").innerHTML="' + respuesta_solver + '";'
所以我怀疑是添加 (") 和 (') 符号的问题
这就是我想要的结果,从这个
为此:
没有方法execute
而是execute_script
。
您可能会这样做:
element = driver.find_element_by_id("g-recaptcha-response")
driver.execute_script("yout JS stuff here with element[0]", element)
更新 1:
您可以像这样分解字符串:
element = driver.find_element_by_id("g-recaptcha-response")
inner_html = element.get_attribute('innerHTML')
final_str = inner_html + value;
我认为这很好用。传递包含引号的字符串很棘手。
pre = 'document.getElementByXpath('
x_path = '//textarea[@name="h-captcha-response"]'
post = f').innerHTML="{value}";'
# alternative: post = ').innerHTML="' + value + '";'
insert_solver = pre + x_path + post
driver.execute_script(insert_solver)