You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome浏览器中VBA Selenium SendKeys Ctrl+C失效问题求助

解决Chrome下VBA Selenium的Ctrl+C复制失效问题

原代码问题分析

直接调用driver.SendKeys给浏览器窗口发按键时,ChromeDriver切换新窗口后,焦点可能未落在页面内容区域,导致Ctrl+C无法触发剪贴板复制;部分网站的剪贴板权限限制也会拦截这类模拟操作。

解决方案1:定位元素后再发送按键

先定位页面的body元素并设置焦点,再对该元素执行全选和复制操作,确保按键指令作用在正确的区域:

Private keys As New selenium.keys
Private driver As New selenium.ChromeDriver

Sub A_Scrap_Chrome()
    Dim myURL As String
    Dim keyObj As selenium.keys
    Dim bodyElem As selenium.WebElement
    Set keyObj = New selenium.keys

    Const JS_NEW_WINDOW = "window.open(arguments[0], name);"
    myURL = "https://en.wikipedia.org/wiki/Wikipedia:Random"
    driver.get myURL
    driver.ExecuteScript JS_NEW_WINDOW, myURL
    driver.SwitchToNextWindow

    '定位body元素并获取焦点
    Set bodyElem = driver.FindElementByTag("body")
    bodyElem.Click
    bodyElem.SendKeys keyObj.Control & "A"
    bodyElem.SendKeys keyObj.Control & "C"
End Sub

解决方案2:直接通过JS获取页面文本(更稳定)

如果你的需求是获取页面内容,完全可以跳过剪贴板操作,直接用JavaScript读取页面文本,避免权限和焦点问题:

'替换原代码中SendKeys的部分
Dim pageText As String
pageText = driver.ExecuteScript("return document.body.innerText;")
'示例:将文本写入Excel单元格
Range("A1").Value = pageText

内容的提问来源于stack exchange,提问作者Mukunda Adhikari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:35:19