Я пытаюсь автоматизировать задачу в IE с помощью VBS, и мне нужно нажать кнопку отправки. Есть две кнопки отправки, «Поиск» и «Фоетический поиск». Ни одна из этих кнопок не имеет значения или идентификатора, и оба они имеют один и тот же класс. HTML для кнопок:Нажатие кнопки в IE с VBS, когда кнопка не имеет идентификатора или имени и имеет тот же класс, что и другая кнопка
<td align="left"><button type="button" class="searchAdv" onclick="javascript:postAdvancedSearch()">Search</button><br></td>
<td align="left"><button type="button" class="searchAdv" onclick="javascript:postAdvancedPhoneticSearch()">Phonetic Search</button></td>
У меня есть этот код до сих пор:
Set IE = createobject("internetexplorer.application")
strURL = "http://somewebsite.com"
IE.navigate strURL
IE.Visible = true
Do While (IE.Busy Or IE.READYSTATE <> 4)
WScript.Sleep 100
Loop
Set searchButton = IE.Document.GetElementsByClassName("searchAdv")
Это захватывает обе кнопки, так как они являются единственными на странице с этим классом, но теперь, как я заберу щелкните правой кнопкой мыши. searchButton(0 or 1).value
пуст. Какой атрибут содержит метки «Поиск» и «Феникс-поиск» для кнопок? Я бы подумал, что что-то вроде searchButton(0).label
или .text
или что-то, но я не нашел, что работает. Как взять правую кнопку?
Это проверить матчи как «Поиск» * и * " Фонетический поиск ", потому что оба содержат строку (« Ввод »), поэтому кнопка с нажатием кнопки зависит от того, какой символ' .getElementsByClassName() 'возвращает первым. Лучше использовать свойство 'innerText' и сравнить полную строку:' Если LCase (Trim (button.innerText)) = "search" Then'. 'Trim()' удаляет ведущие и конечные пробелы из строки, а с помощью 'LCase()' вы эмулируете сравнение без учета регистра. –