使用Selenium在Excel中网页抓取——readonly属性处理难题
用Excel VBA结合Selenium移除网页input的readonly属性
针对你提供的id为fchFin的输入框,直接通过Selenium执行JavaScript就能移除它的readonly属性,具体VBA代码如下:
Sub RemoveInputReadOnly() ' 初始化浏览器驱动,这里以Chrome为例,用Firefox的话换成FirefoxDriver Dim seleniumDriver As New ChromeDriver ' 打开目标网页 seleniumDriver.Get "你的网页地址" ' 执行JS移除readonly属性 seleniumDriver.ExecuteScript "document.getElementById('fchFin').removeAttribute('readonly')" ' 要是需要修改输入框内容,直接定位元素操作即可 seleniumDriver.FindElementById("fchFin").Clear seleniumDriver.FindElementById("fchFin").SendKeys "2024-01-01" ' 操作完成后关闭浏览器 seleniumDriver.Quit End Sub
注意事项
- 确保已经在VBA编辑器的「工具→引用」中勾选了Selenium Type Library
- 浏览器驱动(如chromedriver)要与你使用的浏览器版本匹配,且放在VBA可访问的路径下(比如和Excel文件同目录,或添加到系统PATH)
- 如果无法通过id定位元素,也可以用name选择器,把JS代码改成
document.getElementsByName('fchFin')[0].removeAttribute('readonly'),不过id是唯一标识,优先用id更稳妥
内容的提问来源于stack exchange,提问作者Edu2694
相关产品推荐
相关产品推荐

