Я пытаюсь сравнить укус в li. Это, вероятно, очень просто, и я попытался сделать то же самое, что и с циклическим просмотром Href в таблице, которую генерирует сайт, но это не работает так же.
<div class = "text" id = "vs" style = "left: 908px; top: 97px; width: 391px; color: red; position: absolute; z-index: 251;">
<ul><li>Has Duplicated Billed Line Item(s).</li></ul>
</div>
Это то, что у меня есть до сих пор, но красный var не заполняется
Set allalert = appIE.document.getElementById("vs").getElementsByTagName("li")
For Each alert In allalert
If alert = "Has Duplicated Billed Line Item(s)." Then
Call Dupe_Bill_process
Next alert
Любая помощь будет очень признательна, и спасибо всем, кто помогал мне в этом процессе обучения, у меня действительно все в порядке с этим, лол.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно будет ссылаться на innerText элементов, которые вы пытаетесь проверить.
If alert.innerText = "Has Duplicated Billed Line Item(s)." Then
Call Dupe_Bill_process
Next alert
Вам нужно сравнить со свойством .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
Не беспокойся. Любые другие вопросы, дайте мне знать.
Чувак, список нод тоже был отличной идеей, еще раз спасибо за помощь. Очевидно, я все еще учусь, но помощь, которую вы оказали мне сегодня и вчера, сделала очень утомительную часть моей работы более терпимой.