Не удалось получить доступ к выпадающему списку с помощью XPATH

Я новичок в веб-автоматизации Selenium. Я пытаюсь получить доступ к элементам в раскрывающемся меню, но не могу этого сделать. Ниже приведена HTML-часть:

<div class="DropdownWidget---dropdown_value" id="3a5fa336ce7939555b5cd5d4fcb714fa_value" role="listbox" tabindex="0" aria-controls="3a5fa336ce7939555b5cd5d4fcb714fa_list" aria-expanded="false" aria-activedescendant="" aria-labelledby="3a5fa336ce7939555b5cd5d4fcb714fa" aria-describedby="3a5fa336ce7939555b5cd5d4fcb714fa_selectedChoice">

<!-- react-text: 15 -->Element1<!-- /react-text -->

<span id="3a5fa336ce7939555b5cd5d4fcb714fa_selectedChoice" class="DropdownWidget---accessibilityhidden">element1</span>

</div>

Список в раскрывающемся списке создается в HTML, когда мы нажимаем на него. Xpath не может его обнаружить.

Пожалуйста помоги..


person Debjyoti G.R Choudhury    schedule 09.02.2018    source источник
comment
Пожалуйста, покажите больше HTML-кода, похоже, что текущий HTML-код не включает HTML-подменю.   -  person yong    schedule 09.02.2018
comment
Подменю нет. Когда я нажимаю на элемент 2, этот фрагмент кода меняется на код элемента 2.   -  person Debjyoti G.R Choudhury    schedule 09.02.2018
comment
Покажите HTML-код, когда вы нажмете на него, появится раскрывающееся меню. Покажите HTML-код выпадающего меню, сообщите нам, какое меню вы хотите выбрать   -  person yong    schedule 09.02.2018


Ответы (1)


Лучший способ — убедить разработчика добавить data-test-id="MyDropdownWidget" в элемент DOM, который вы хотите протестировать, например:

<div data-test-id="MyDropdownWidget" ...

Затем вы можете получить к нему доступ через driver.findElement(By.xpath("//@*[starts-with('MyDropdownWidget','data-test-id')...

person Marek Ka.    schedule 09.02.2018
comment
Есть ли другой возможный способ? - person Debjyoti G.R Choudhury; 09.02.2018
comment
Трудно сказать что-то большее на основе вашего примера, вы можете использовать классы css или что-то еще, кроме того, что вы можете запускать действия щелчка (тогда выпадающее содержимое должно отображаться). Если вы можете поместить больше визуализированного контента вокруг элемента, который вы хотите протестировать. - person Marek Ka.; 10.02.2018