我有一个这样的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>;
但是考虑到其他元素(xx-abc-list-button-),这也给了我4个计数。
我应该在上面的代码中修改什么才能只获得我需要的两个值?
发布于 2018-06-05 05:07:15
@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')]");
上面XPath中的*
表示任何元素(它是一个通配符)。在本例中,您只需要DIV
s,因此可以将其更改为
@FindBy(xpath = "//div[contains(@id,'xx-abc-list-')]");
它应该能让你得到你想要的。
在一个更复杂的场景中,您想要两个而不是四个并且都是按钮,您仍然可以使用"not DIV
()“来排除包含”-DIV
-“的ID。
@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')][not(contains(@id,'-button-'))]")
https://stackoverflow.com/questions/50688370
复制相似问题