我正在尝试找到一种选择此特定Web元素的方法:
<snack-bar-container class="mat-snack-bar-container ng-tns-c43-25 ng-trigger ng-trigger-state snackbar-info mat-snack-bar-center ng-star-inserted" role="alert" style="transform: translateY(0%);"><!----><simple-snack-bar class="mat-simple-snackbar ng-tns-c44-26 ng-trigger ng-trigger-contentFade ng-star-inserted" style="">Asset successfully loaded! <!----><button class="mat-simple-snackbar-action ng-tns-c44-26 ng-star-inserted" style="">Close</button></simple-snack-bar></snack-bar-container>
当前我是按文字选择的:
.//snack-bar-container//*[contains(text(),'There are errors on the page:')]
但是由于会进行本地化(文本翻译),因此从长远来看将是不可靠的,问题是,如何选择元素,该元素的类属性在类名中包含一些特定的文本。
您可以看到我的Web元素类很长,并且经常变化,因此我需要检查它是否包含一些特定的文本,
.//[contains(@class,’snackbar-info’)]
但这不起作用,有什么建议吗?谢谢。
答案 0 :(得分:2)
您的陈述几乎是正确的。您仅在语句开头缺少SelectAll(*)。只需添加它,即可使用XPath:
//*[contains(@class, "snackbar-info")]