遮盖元素更改名称ID

时间:2019-05-28 12:47:49

标签: c# css visual-studio selenium

我正在使用Visual Studio在Selenium中编写一个测试用例。

在几个测试用例中,我需要等待一个暂时的遮盖元素消失。问题在于该元素的名称更改了其“数字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行代码来覆盖此元素的每个ID。有没有办法只编写一行代码在00-00到99-99之间的范围内查找此ID?

1 个答案:

答案 0 :(得分:2)

这是在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']")));