我正在使用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?
答案 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']")));