VBA проверяет наличие предупреждений на веб-странице в <li> </li> и запускает Sub, если обнаружено

Я пытаюсь сравнить укус в 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

Любая помощь будет очень признательна, и спасибо всем, кто помогал мне в этом процессе обучения, у меня действительно все в порядке с этим, лол.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
132
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно будет ссылаться на 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

Чувак, список нод тоже был отличной идеей, еще раз спасибо за помощь. Очевидно, я все еще учусь, но помощь, которую вы оказали мне сегодня и вчера, сделала очень утомительную часть моей работы более терпимой.

Emein 17.01.2019 21:55

Не беспокойся. Любые другие вопросы, дайте мне знать.

QHarr 17.01.2019 22:01

Другие вопросы по теме