多个备用选择

时间:2015-02-09 17:32:29

标签: java selenium xpath

我正在检查用户名的两个可能不同的页面(验证文本是否存在)。像这样:

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)

但这让我更加开放和收尾报价。

2 个答案:

答案 0 :(得分:1)

如果您要查找的元素是divspan元素,请使用以下表达式:

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
}

EDIT1

关于xpath的Selenium文档,它尽可能使用浏览器本机xpath引擎 - http://docs.seleniumhq.org/docs/03_webdriver.jsp#by-xpath