检查node或Innernode是否等于Selenium中的文本 好啊

检查node或Innernode是否等于Selenium中的文本 好啊,selenium,xpath,Selenium,Xpath,我想检查字符串“OK”是否在子节点(例如span)或按钮中。我试图提交以下XPath: //按钮[@type='submit']//child::text()=“确定”或//text()=“确定” 它工作正常-但在Selenium中,我在会话7XXXX上得到了一个com.thoughtworks.Selenium.SeleniumException:错误:命令执行失败。-命令请求:isElementPresent[xpath=//按钮[@type='submit']//child::text()

我想检查字符串“OK”是否在子节点(例如span)或按钮中。我试图提交以下XPath:

//按钮[@type='submit']//child::text()=“确定”或//text()=“确定”


它工作正常-但在Selenium中,我在会话7XXXX上得到了一个com.thoughtworks.Selenium.SeleniumException:错误:命令执行失败。-命令请求:isElementPresent[xpath=//按钮[@type='submit']//child::text()='OK'或//text()='OK',]。是否需要不同的XPath语法。

要检查按钮的文本节点或按钮子节点的文本节点是否等于
“OK”

请注意,
child::text()
引用作为按钮直接子级的文本节点,您的HTML示例没有这种类型的文本节点。要引用作为按钮子节点直接子节点的文本节点,请使用
child::*/text()
或简单地
*/text()

您不必显式调用
text()
,实际上,上面的XPath可以进一步简化如下:

//button[@type='submit'][child::*/text()='OK' or text()='OK']

谢谢但是X路径的结果是Element='OK'。。。。我更需要true或false来匹配或不匹配…恐怕您不能仅使用XPath来实现这一点。您可以执行这个XPath,然后使用宿主编程语言检查XPath是否返回任何内容,如果它是means
true
否则
false
这是一种糟糕的测试设计。。应用程序应该是一致的。如果是span将包含文本,那么您可以使用:(CSS)
按钮[type='submit']>span.btext
无需添加额外的检查。
//button[@type='submit'][child::*/text()='OK' or text()='OK']
//button[@type='submit'][*='OK' or .='OK']