我正在检查用户名的两个可能不同的页面(验证文本是否存在)。像这样:
1:
<div>billgates@starbucks.com</div>
2:
<span>billgates@starbucks.com</span>
我正在使用Java和selenium。在我的java函数中,我现在有了
method( String type, String user)
然后再做
`if (type.equals("Vendor") ) {
xpath = "//div[contains(text(),'USERNAME')]".replace("USERNAME", username);
} else {
xpath = "//span[contains(text(),'USERNAME')]".replace("USERNAME", username);
}`
这很好,但我希望能够将它们放在一起,就像这样
//(div OR span)[contains(text(),'USERNAME')]".replace("USERNAME", username);
这样做有好办法吗?是的,我可以说
`"//div[contains(text(),'" + username + "')]"` (or span)
但这让我更加开放和收尾报价。
答案 0 :(得分:1)
如果您要查找的元素是div
或span
元素,请使用以下表达式:
xpath = "//*[self::div or self::span][contains(text(),'USERNAME')]".replace("USERNAME", username);
答案 1 :(得分:-1)
您可以使用运营商。点击此处 - http://www.w3schools.com/xpath/xpath_operators.asp。
if("//div[contains(text(),'USERNAME')]" | "//span[contains(text(),'USERNAME')]") {
//do stuff
}
关于xpath的Selenium文档,它尽可能使用浏览器本机xpath引擎 - http://docs.seleniumhq.org/docs/03_webdriver.jsp#by-xpath