Selenium Automation: Идентификация уникального набора webelements с использованием селена в JAVA - PullRequest
0 голосов
/ 04 июня 2018

У меня есть такой HTML-код:

"<div **id="xx-abc-list-1"**>
<button ng-reflect-class-base="icon component" **id="xx-abc-list-button-2"**><span class="mat-button-wrapper">
</div>

<div **id="xx-abc-list-2"**>
<button ng-reflect-class-base="icon component" **id="xx-abc-list-button-2"**><span class="mat-button-wrapper">
</div>"

Теперь я хотел получить список всех элементов, заканчивающихся только на id = xx-abc-list, поэтому я использовал приведенный ниже код.

@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')]");
List<WebElement>;

Но это дает мне 4 счета с учетом других элементов (xx-abc-list-button-).

Что мне изменить в приведенном выше коде, чтобы получить только 2 значения, которые мне нужны?

1 Ответ

0 голосов
/ 05 июня 2018
@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')]");

* в вашем XPath выше указывает на любой элемент (это подстановочный знак).В вашем случае вам нужно только DIV с, поэтому вы можете изменить это значение на

@FindBy(xpath = "//div[contains(@id,'xx-abc-list-')]");

, и оно должно получить то, что вы хотите.

В более сложном сценарии, когда вам нужно двано не четыре и все DIV s, вы все равно можете использовать «not includes ()», чтобы исключить идентификаторы, содержащие «-button -».

@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')][not(contains(@id,'-button-'))]")

Как использоватьне содержит () в xpath?

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