我希望创建一个宏,该宏可以自动登录页面,然后自动填充搜索输入字段,最后通过网络抓取搜索结果。
我已经努力了很长时间才能成功登录该页面。但是,当我单击登录按钮时,我无法进一步获取搜索字段的输入标签,也无法将值添加到该输入字段。这些输入标签的索引绝对正确。
下面是我的vba脚本,非常感谢!
Sub login_and_search()
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.Navigate "http://loginpage.html"
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
Set inputElement = .document.getELementsByTagName("input")
inputElement.Item(0).Value = "abc" 'username
inputElement.Item(1).Value = "xyz" 'password
inputElement.Item(2).Click
Do While ie.Busy Or _
.readyState <> 4
DoEvents
Loop
Set searchField = .document.getELementsByTagName("input")
searchField.Item(0).Value = "searchitems" 'search field
searchField.Item(1).Click
End With
End Sub
下面是2个html文件,对于过于简化的html文件感到抱歉,因为我大致将它们制作为仅用于测试vba脚本。第一个是登录页面,第二个是登录后的页面。
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="search.html" method="post">
<input type="text" name="" value="">
<input type="password" name="" value="">
<input type="submit" name="" value="login">
</form>
</body>
</html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form class="" action="searchResults.html" method="post">
<input type="text" name="" value="">
<input type="submit" name="" value="Search">
</form>
</body>
</html>
运行宏时没有错误显示,我认为这是逻辑错误而不是语法错误。
再次感谢大家!