你可以尝试
//button[contains(div,'Save')]
要查找包含特定文本的 div
子元素的 button
,请使用子代选择器。
要查找包含特定文本的 div
后代元素的 button
,请使用后代选择器。
//button[contains(.//div,'Save')]
关于其他当前接受的答案的问题:请注意,其他答案中的两个XPath都存在问题:
//button[contains(div,'Save')]
在这种情况下可以工作,但请注意,当
button
包含一个 span
或另一个或没有元素,而不是一个 div
时,它将失败。div
元素的按钮: "Save this"
、"Save that"
、"Jesus Saves"
等。//button[contains(.//div,'Save')]
在这种情况下也可以工作,但请注意,如果有多个 div
后代,则会失败,并且
Save
div
不是第一个 div
。div
元素)的序列作为 contains()
的第一个参数传递是错误的。考虑使用以下XPath:
//button[normalize-space() = 'Save']
这将选择空间规范化字符串值完全为"Save"
的button
元素。
或者,如果进行子字符串测试:
//button[contains(., 'Save')]
//button[normalize-space() = 'Save']
只有在 button(而不是它的子元素 div)的文本内容(忽略起始和尾随空格)等于(而不是包含)特定文本时才有效,而 //button[contains(., 'Save')]
也无法回答“如何定位任何包含文本 'Save' 的 div 内部的按钮?”的问题。 - JaSON