Вам нужно сравнить со свойством .innerText
, поскольку вы сравниваете с объектом в настоящее время. Вы также можете удалить устаревшее ключевое слово call
.
Set allalert = appIE.document.getElementById("vs").getElementsByTagName("li")
For Each alert In allalert
If alert.innerText = "Has Duplicated Billed Line Item(s)." Then
Dupe_Bill_process
'Exit For ''?
Next alert
Вы можете захотеть Exit For
, если хотите выйти сразу после первого матча. Или просто используйте appIE.document.getElementById("vs").getElementsByTagName("li")(0)
Я бы также рассмотрел простой сбор списка узлов с использованием селекторов css. Поскольку вы используете настоящий браузер, это должно быть быстрее.
#vs > ul
То есть:
Dim nodeList As Object, i As Long
Set nodeList = ie.document.querySelectorAll("#vs > ul")
For i = 0 to nodeList.Length-1
If nodeList.item(i).innerText = "Has Duplicated Billed Line Item(s)." Then
Dupe_Bill_process
End If
Next
Если вы заботитесь только о первом совпадении, код просто становится:
If ie.document.querySelector("#vs > ul").innerText = "Has Duplicated Billed Line Item(s)." Then
Dupe_Bill_process
End If