Я пытаюсь использовать окно поиска на веб-сайте, чтобы найти клиента. Я могу ввести информацию в Inte rnet Explorer с кодом в разделе «Вход на веб-сайт», но когда я пытаюсь найти клиента, все объекты, которые я пытаюсь найти, всегда равны нулю.
Код VBA
Sub main()
' IE object to pass to all functions
Dim IE As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
' URL for website login
Dim URL As String
URL = "https://www.website.com"
' Search bar object (for homepage)
Dim searchBar As Object
IE.Visible = True
IE.navigate URL
' Load webpage completely
Do Until Not IE.busy And IE.readystate = 4
DoEvents
Loop
' Log on to website
IE.document.getElementByID("UserName").Value = "myUsername"
IE.document.getElementByID("Password").Value = "myPassword"
' Time delay ensures entry of username and password
Application.Wait (Now + TimeValue("00:00:02"))
IE.document.getElementByID("btnLogin").Click
' Load webpage completely
Application.Wait (Now + TimeValue("00:00:02"))
Do Until Not IE.busy And IE.readystate = 4
DoEvents
Loop
' Search for client by ID on "Home" tab
' This doesn't work
IE.document.all("form1").Name("Searchfor").Value = "clientID"
IE.document.all("form1").Name("search").Click
' This doesn't work
IE.document.getElementsByName("Searchfor")(0).Value = "clientID"
IE.document.getElementsByName("search")(0).Click
End Sub
HTML Код (я пытался указать здесь пробелы, чтобы сделать его более читабельным, но я не знаю HTML, поэтому он может быть неправильно разделен )
<form name="form1" id="form1" action="/common/my_cw.asp" method="post">
<table width="255" border="0" cellspacing="0" cellpadding="2"><tbody>
<tr><td nowrap="">
<input name="Searchfor" onclick="if (this.value == 'NAME / ID') this.value=''"
onblur="if (this.value == '')
this.value='NAME / ID'" type="text" size="20" value="NAME / ID">
<input name="search" type="submit" value="Search"></td></tr>
<tr><td>
<input name="searchtype" type="radio" checked="" value="C">Client
<input name="searchtype" type="radio" value="E">Employee</td></tr>
</tbody>
</table>
</form>
Я также попытался getElementsByTag ("input") и использовать для каждого l oop безуспешно.
Пожалуйста, дайте мне знать, если потребуется дополнительный код HTML.