Я использую Selenium WebDriver.У меня проблема с динамически меняющимся идентификатором.Я просматривал некоторые посты, такие как Обработка элементов, которые постоянно меняют идентификаторы через Selenium Webdriver , но не нашел решения, которое могло бы мне помочь.
Включение start-with
и contains
в XPath не может помочь, так как есть много элементов, которые начинаются с одинакового текста, и идентификатор постоянно меняется.Пожалуйста, обратитесь к HTML
ниже для большей ясности.
<mat-option _ngcontent-c1="" class="__mat-option mat-option ng-star-inserted"
role="option" tabindex="0" id="mat-option-4"
aria-selected="false" aria-disabled="false">
<span class="mat-option-text">
<i _ngcontent-c1="" class="material-icons">description</i>
<span _ngcontent-c1="" style="padding-left: 8px">Campaign Details</span>
</span>
<div class="mat-option-ripple mat-ripple" mat-ripple=""></div>
</mat-option>
- Обратите внимание на идентификатор в приведенном выше HTML, который является динамическим и постоянно меняется.
- Есть еще несколько подобных элементовс таким же именем класса.
- Есть еще несколько элементов, которые начинаются с
mat-option-
. - Единственный уникальный текст - это
<span>
.
Я пытался driver.findElement(By.xpath(".//span[contains(text(), 'Campaign Details']"));
, но у меня не работает.