Как установить флажок на веб-странице, используя selenium vba - PullRequest
0 голосов
/ 27 августа 2018

У меня есть вопрос, как установить флажок на веб-странице, используя selenium vba.

Ниже приведен снимок экрана, на котором я хочу нажать

enter image description here

Ниже приведен HTML-код.

<span name="locSpans[]" value="Nerul" style="display:block">
<input type="checkbox" name="locArr[]" value="8897" onclick="enableDisableLocality(); showSelectedLoc();">Nerul
<br>
<input type="hidden" name="locArrVal[]" disabled="disabled" value="Nerul">
</span>

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

Вы можете использовать xpath ниже, чтобы получить флажок, это означает: найти ввод с type = "checkbox" и родительский SPAN с текстом "Nerul".

driver.FindElementByXPath("//input[ancestor::span[normalize-space(.)='Nerul'] and @type='checkbox']").Click
0 голосов
/ 27 августа 2018

FindElementByCss обычно быстрее, если не используется IE, и затем это зависит от того, какая версия IE и какой тип обхода требуются.

Повторные тесты доказали, что FindElementByCssболее производительный, чем FindElementByXPath (Примечание: если присутствует уникальный идентификатор, тогда выбор по идентификатору всегда является первым выбором!)

In тесты с тестом Chrome и FireFoxвидел более быстрое сопоставление с использованием CSS последовательно по различным путям обхода.Они оптимизированы с учетом CSS, а использование селекторов CSS рассматривается как лучший метод селена .IE был более изменчивым, в большинстве случаев XPath был немного более производительным, но были некоторые четкие пути, которые благоприятствовали выбору CSS.Длинные XPath-селекторы будут дорогостоящими и склонными к поломкам.Более поздние версии IE видели больше изменчивости.Браузер Opera12 пришел со смешанными результатами.


Я бы использовал селектор CSS:

Итак, для простого выбора, основанного на вероятном уникальном атрибуте,Я бы пошел с атрибутом CSS селектор [value='8897'] для цели value атрибут.[] означает селектор атрибута.Так что атрибут value со значением 8897.

driver.FindElementByCss("[value='8897']").Click

Если вы хотите быть более избирательным, вы можете добавить дополнительный селектор атрибута, как показано ниже, для назначения атрибута type.

driver.FindElementByCss("[type=checkbox][value='8897']").Click

Когда мне тогда использовать XPath?

Более старые версии IE наверняка.

Любое требование для поднятия DOM будет указывать на использование XPath.

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

0 голосов
/ 27 августа 2018

Попробуйте, если не выбрали CSS Selector Option

bot.Window.Maximize

bot.FindElementByName("locArrVal").Click

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