gpt4 book ai didi

由 xpath : search by text in child elements 提供的 Selenium WebDriver

转载 作者:行者123 更新时间:2023-12-03 16:15:22 26 4
gpt4 key购买 nike

我正在使用 Selenium WebDriver。 (Java,如果重要的话)。

我需要找到一个元素,其中包括搜索从属元素下的文本。我目前通过遍历元素列表并将 getText() 与我想要的值进行比较来完成它,但我怀疑让浏览器通过 xpath 完成它会更好。

例如,这是我要查找的元素:

<span role="button" class="mblToolBarButton mblToolBarButtonHasLeftArrow" tabindex="0" id="dojox_mobile_ToolBarButton_3" dir="ltr" widgetid="dojox_mobile_ToolBarButton_3"><span class="mblToolBarButtonArrow mblToolBarButtonLeftArrow mblColorDefault mblColorDefault45"></span><span class="mblToolBarButtonBody mblColorDefault"><table cellpadding="0" cellspacing="0" border="0" role="presentation" class="mblToolBarButtonText"><tbody><tr><td class="mblToolBarButtonIcon"></td><td class="mblToolBarButtonLabel">Back</td></tr></tbody></table></span></span>

在线搜索后,我尝试了以下选择器:

//*[contains(@class,'mblToolBarButtonHasLeftArrow') and text()[contains(.,'Back')]]

但是没有用。

理想情况下,我想搜索整个文本,而不是子字符串,这样可以找到带有文本“Back”的这个元素,但不会找到带有文本“Backup”的另一个类似元素。我不需要连接不同子元素中的文本。

我应该写什么选择器?谢谢!

最佳答案

你可以使用这样的结构:

//*[contains(@class,'mblToolBarButtonHasLeftArrow') and .//*[text()='Back']]

搜索包含具有指定文本的子元素的父元素。这样,将找到带有文本“Back”的元素,但不会找到带有“Backup”的元素。

顺便说一句:提供可读的 html 片段而不是长行更为礼貌。例如:

<span role="button" class="mblToolBarButton mblToolBarButtonHasLeftArrow" tabindex="0" id="dojox_mobile_ToolBarButton_3" dir="ltr" widgetid="dojox_mobile_ToolBarButton_3">
<span class="mblToolBarButtonArrow mblToolBarButtonLeftArrow mblColorDefault mblColorDefault45"></span>
<span class="mblToolBarButtonBody mblColorDefault">
<table cellpadding="0" cellspacing="0" border="0" role="presentation" class="mblToolBarButtonText">
<tbody>
<tr>
<td class="mblToolBarButtonIcon"></td>
<td class="mblToolBarButtonLabel">Back</td>
</tr>
</tbody>
</table>
</span>
</span>

关于由 xpath : search by text in child elements 提供的 Selenium WebDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com