【发布时间】:2014-10-01 02:56:54
【问题描述】:
.//*[contains(text(), "Apply")]
<input type="hidden" value="false" name="needsValidation"/>
<input type="hidden" value="false" name="fullValidationPerformed"/>
<div class="loadingBox hidden">
<div class="paneContent">
<div class="topButtons">
<div class="rightSide">
<div id="saveChangesButton" class="majorButton">
<div>
<div>
<div>
<span class="hidden"/>
Apply Changes
<span class="down"/>
</div>
</div>
</div>
</div>
</div>
为什么我创建的 xpath 字符串在这里找不到“Apply”?看来,我的 xpath 语句仅在我要查找的文本位于这样的“div”标签内的“span”标签内时才会失败。
有人可以帮我理解我在这里缺少什么吗?
【问题讨论】:
-
用 . (句号)
-
"用 .(句点)更改文本?"我不明白。你能解释一下吗?
-
您的测试是试图找到要单击的按钮还是断言文本包含“应用”一词?查看 saucelabs.com/resources/selenium/css-selectors 获取有关 Selenium 选择器的出色备忘单。
-
.//*[contains(text(), "Apply")] 应该是这样的:.//*[contains(., "Apply")]
-
@poodled - 有效,除了它返回 7 个匹配节点 - 每个节点都包含一个包含此字符串的节点。即表单节点,每个 div 节点都包含一个 div 节点,该 div 节点最终包含字符串“Apply Changes”。我知道我可以使用索引来到达所需的节点,但我试图使其尽可能独立于实现,因此如果开发人员更改 UI 实现,我们没有太多工作要做来更新我们的测试脚本。