首页 > 解决方案 > 使用 Selenium VBA 从网页复制表格

问题描述

我正在尝试将此网页(https://www.rosterresource.com/mlb-schedule-grid/)中的图表复制到 Excel 中的工作表中。我一直在使用带有 Selenium 参考的 VBA 来访问网页并尝试通过 Xpath 或 ID 查找元素,但是我在查找图表时遇到了问题。我认为我要复制的图表位于不同的框架中,但我不熟悉如何正确获取它。

Dim driver As Selenium.ChromeDriver
Set driver = New Selenium.ChromeDriver
Dim url As String

url = "https://www.rosterresource.com/mlb-schedule-grid/"

driver.Start "chrome", "https://www.google.com/"
driver.Wait 1000
driver.Get url
driver.Wait 5000
Element = driver.FindElementByXPath(???).Attribute("innerText") 'this is where I struggle
driver.Close

Range("a1").Value = Element

标签: excelvbaselenium-webdriver

解决方案


您可以使用以下语法选择 iFrame 并切换到它们:

Option Explicit
Public Sub GetTable()
    Dim d As WebDriver, a As Object
    Set d = New ChromeDriver
    Const URL = "https://www.rosterresource.com/mlb-schedule-grid/"

    With d
        .Start "Chrome"
        .Get URL

        Set a = .FindElementsByTag("iframe")(1)  
        .SwitchToFrame 0
    End With
End Sub

但是,可以通过以下方式获得指向包含数据的电子表格的直接链接:

 .FindElementByCss("iframe").Attribute("src")

推荐阅读