работа с .Document.getElementById () и переменными в vba - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь выбрать значение из раскрывающегося списка, используя vba, кодовый блок для раскрывающегося списка выглядит следующим образом:

<input type="text" id="form_autocomplete_input-1542902425322" list="form_autocomplete_suggestions-1542902425322" placeholder="Search keyword or select filter" role="combobox" aria-expanded="false" autocomplete="off" autocorrect="off" autocapitalize="off" aria-autocomplete="list" aria-owns="form_autocomplete_suggestions-1542902425322 form_autocomplete_selection-1542902425322">

Если бы значение form_autocomplete_suggestions-1542902425322 было статическим, я бы использовал .Document.getElementById("form_autocomplete_suggestions-1542902425322").Value = "Role: Student" однако это, кажется, случайно сгенерированное числовое значение.

Я посмотрел и, кажется, я не могу просто добавить подстановочный знак, такой как .Document.getElementById("form_autocomplete_suggestions-*").Value = "Role: Student"

И как его случайно сгенерированный итакое длинное число, которое не может пройти через массив значений.поэтому я не уверен, как решить эту проблему.

1 Ответ

0 голосов
/ 22 ноября 2018

Вы можете использовать атрибут css, равный синтаксису селектора значений, с оператором ^, чтобы сказать, что начинается с определенной подстроки.Вместо этого вы также можете использовать *, что означает:

[id^='form_autocomplete_input-']

VBA:

ie.document.querySelector("[id^='form_autocomplete_input-']")

Вы также можете использовать:

[placeholder='Search keyword or select filter']

Что будет:

ie.document.querySelector("[placeholder='Search keyword or select filter']")

Когда вы указываете, что это необходимо выбрать, вам может понадобиться:

ie.document.querySelector("[id^='form_autocomplete_input-']").Selected = True

Ссылка:

  1. Селектор атрибутов CSS
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...