Как идентифицировать веб-элемент выбранного элемента с помощью Selenium, для динамически меняющегося имени и идентификатора - PullRequest
0 голосов
/ 08 февраля 2019
<div class="col-xs-6 form-field input_controls">
<select name="ni.VE402765a6db1fef4043fb7d668c961997" id="ni.VE402765a6db1fef4043fb7d668c961997" class="form-control cat_item_option" onchange="if (typeof(variableOnChange) == 'function') variableOnChange('ni.VE402765a6db1fef4043fb7d668c961997')" aria-readonly="false" aria-required="true"><option value="" selected="SELECTED">-- None --</option><option value="Yes">Yes</option></select>
<input type="HIDDEN" class="cat_item_option" name="sys_original.ni.VE402765a6db1fef4043fb7d668c961997" id="sys_original.ni.VE402765a6db1fef4043fb7d668c961997" value=""></div>

Выше приведен класс DIV «SelectBox».Номера меняются для каждого "SelectBox".Я не хочу жестко кодировать идентификатор или имя, мне нужен способ идентифицировать каждый SelectBox в отдельности.Все «SelectBox» имеют одинаковые имя и идентификатор, кроме цифр.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Пожалуйста, используйте класс тега select. Он должен работать. Я пытался использовать код Python. Если вы используете Java Xpath, оставайтесь прежними.

select=Select(driver.find_element_by_xpath("(//select[@class='form-control cat_item_option'])[n]"))
select.select_by_value('Yes')

, где n = 1.2..n

Если вы хотите найти 1-й элемент, укажите 1 вместо n Дайте мне знать, если это работает для вас.

0 голосов
/ 08 февраля 2019

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

См. Получите N-й дочерний элемент узла, используя xpath для получения более подробной информации об этом.

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