首页 > 解决方案 > 在python中设置CSS样式

问题描述

这是我的代码(没有进口和东西):

driver.get('http://democaptcha.com/demo-form-eng/hcaptcha.html')
time.sleep(3)
driver.execute_script("document.getElementsByName('h-captcha-response').style.display='none';")

但这给我带来了错误:

selenium.common.exceptions.JavascriptException:消息:javascript 错误:无法设置未定义的属性“显示”

当我做:

driver.execute_script("document.getElementById('h-captcha-response-0zu3aawejggj').style.display = 'block';")

它向我显示了错误

selenium.common.exceptions.JavascriptException:消息:javascript 错误:无法读取 null 的属性“样式”

(代码参考)

Selenium (with python) 如何修改一个元素的css样式

如何使用 selenium python 更改/删除样式属性?

谢谢!

标签: javascriptpythonselenium

解决方案


这是因为它找不到元素。可能是因为ID每次页面加载都在不断变化。另一种选择可能是

driver.execute_script("document.querySelector(`[id^='h-captcha-response']`).style.display = 'block'");

这意味着它将找到以ID开头的第一个元素h-captcha-response


推荐阅读