Имя скрывающего элемента ID изменения - PullRequest
0 голосов
/ 28 мая 2019

Я пишу тестовый пример в Selenium с использованием Visual Studio.

В нескольких тестовых случаях мне нужно дождаться исчезновения временного скрывающего элемента.Проблема в том, что имя этого элемента меняет свой «номер ID».

Это имя затемняющего элемента:

.mat-snack-bar-container.ng-tns-c36-13.ng-trigger.ng-trigger-state.snack-bar-success.mat-snack-bar-top.ng-star-inserted

Часть, которая всегда изменяется, - это эта часть: 36-13

Я жду, пока он исчезнет, ​​вот так:

wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.CssSelector(".mat-snack-bar-container.ng-tns-c36-13.ng-trigger.ng-trigger-state.snack-bar-success.mat-snack-bar-top.ng-star-inserted")));

Вместо того, чтобы писать 9999 строк кода, чтобы покрыть каждый идентификатор этого элемента.Есть ли способ просто написать одну строку кода, которая ищет этот идентификатор в диапазоне от 00-00 до 99-99?

1 Ответ

2 голосов
/ 28 мая 2019

Вот решение, которое нужно использовать, начинается с и заканчивается в css.

[class^='mat-snack-bar-container ng-tns-c'][class$='ng-trigger ng-trigger-state snack-bar-success mat-snack-bar-top ng-star-inserted']

Приведенный ниже код будет ждать, пока элемент станет невидимым.

wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.CssSelector("[class^='mat-snack-bar-container ng-tns-c'][class$='ng-trigger ng-trigger-state snack-bar-success mat-snack-bar-top ng-star-inserted']")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...