使用 Selenium 和 VBA 从网站抓取数据并遇到影子 DOM 问题

问题描述 投票:0回答:1

这是我的代码:

选项显式

私有 CD 作为 Selenium.EdgeDriver

子条形图() obj.Start "边", "" obj.Get“https://www.barchart.com/stocks/performance/gap/gap-up?viewName=main&orderBy=gapUpPercent&orderDir=desc” obj.Window.最大化 obj.等2000

Dim ShadowHost As Selenium.WebElement
Set ShadowHost = obj.FindElementById("main-content-column")

'Debug.Print ShadowHost.Attribute("id")

' Execute JavaScript code to access the shadow root of the Shadow DOM element
Dim script As String
script = "return arguments[0].shadowRoot;"
Dim shadowRoot As Selenium.WebElement
Set shadowRoot = obj.ExecuteScript(script, ShadowHost)

Dim innerElement As Selenium.WebElement
Set innerElement = shadowRoot.FindElementByXPath("//*[@id='_grid']/set-class[1]/div[2]/a/text-binding").Value
MsgBox innerElement

结束子

我期望得到一个返回值,但我遇到了无法找到元素的问题。

excel vba selenium-webdriver shadow-dom
1个回答
0
投票

你必须使用未被检测到的 chromedriver,这就是你所要做的一切

© www.soinside.com 2019 - 2024. All rights reserved.