使用VBA查找特定的HTML标记

时间:2011-11-04 14:55:41

标签: html vba

我正在尝试导航到网站上的特定页面。我第一次打开页面时,会询问用户名和密码,之后每隔一段时间,它就会记住我并且已经登录了。 我知道如何打开浏览器,如何导航到特定页面,以及如何使用VBA输入用户名和密码到正确的位置。我已经登录时,我不想尝试发送用户名和密码,因为这些标签甚至不存在;输入那些东西的盒子不存在。我需要知道的是,有没有办法找到特定的标签,看它是否在VBA宏的网页上?

编辑:所以,我通过简单地使用“On Error Resume Next”来解决我的问题,所以如果它在尝试将信息输入到不存在的元素时遇到错误,它只会跳过它页面导航线。它可能有点hacky,我会继续寻找一个更优雅的解决方案,但现在,它的工作原理。感谢所有回复的人!

2 个答案:

答案 0 :(得分:0)

如果您在字符串变量中加载了完整的HTML,则可以执行以下操作:

Dim HasLogin As Boolean, HTMLSource As String

HasLogin = (InStr(HTMLSource, "<input name=""login"" id=""username"">") > 0)

答案 1 :(得分:0)

为HTML文档中的每个输入字段设置一个循环,并检查如下名称。

Public Function isLoginScreen(IE As Object) As Boolean
  Set objCollection = IE.document.getElementsByTagName("input")
  Dim i As Long, b As Boolean
  b=False
  i = 0
  While i < objCollection.Length
    If objCollection(i).Name = "Login" Or objCollection(i).Name = "Password" Then 
        ' You found your element
        b=True
        Exit Function
    End If
    i = i + 1
  Wend
End Function

您可以在此处查看更多内容:http://www.excely.com/excel-vba/ie-automation.shtml