代码之家  ›  专栏  ›  技术社区  ›  Miles Zoltak

未启动IE对象时调用.document.getElementByName

  •  0
  • Miles Zoltak  · 技术社区  · 6 年前

    我想启动浏览器并单击无法通过选项卡访问的元素,这样就无法发送密钥。如果是在Internet Explorer上,我会尝试使用ie.document.getElementByName函数,但这不是一个选项,因为我通过shell函数启动了Google Chrome(有关Chrome的启动方法,请参见下面的代码)。当没有.document.getElementByName要调用的对象时,是否有方法仍然访问HTML元素?

    Dim chromePath As String
    chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
    Shell (chromePath & " -url https://clients.mindbodyonline.com/Report/Sales/Sales/Generate?reportID=undefined")
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   QHarr    6 年前

    如果通过selenium进行发布,就很容易。如果不是不可能的话(还没有发现一个VBA方法)要附加到一个现有的浏览器实例,例如从命令行启动的一个不同于当前WebDevices实例的命令。

    我要冒险说出来,因为你的命令是通过 Shell ,并且只启动chrome,然后您可以简单地替换为安装 selenium basic ,添加对 selenium type library 然后使用硒打开铬,如下所示:

    Option Explicit
    Public Sub OpenChromeAndSelect()
    'References to Selenium type library
        Dim d As WebDriver, el As WebElement
        Set d = New ChromeDriver
        Const URL = "https://clients.mindbodyonline.com/Report/Sales/Sales/Generate?reportID=undefined"
        With d
            .Start "Chrome"
            .get URL
            Set el = .FindElementById("myID")
            'Do other stuff
            '.Quit
        End With
    End Sub