没有启动对象时调用.document.getElementByName

时间:2018-07-03 20:46:47

标签: vba excel-vba excel

我想启动浏览器,然后单击无法通过“选项卡”访问的元素,因此无法发送密钥。如果是在Internet Explorer上,我将尝试使用ie.document.getElementByName函数,但这不是一个选择,因为我通过外壳函数启动了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 个答案:

答案 0 :(得分:0)

如果您通过硒进行发射则很容易。附加到现有浏览器实例上的难度要大得多,甚至不是不可能(尚未找到vba方法)。从命令行启动的一种与当前WebDriver实例所使用的不同。

我要冒充地说,因为您的命令行内容是通过Shell完成的,并且仅用于启动Chrome,所以您只需替换为安装selenium basic,添加参考到selenium type library,然后使用硒打开Chrome,如下所示:

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