Java 如果第一个xpathcondition失败,如何执行else if(xpathcondition)?

Java 如果第一个xpathcondition失败,如何执行else if(xpathcondition)?,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,在上面的代码中,if条件失败表示如何执行else if(xpathcondition), 对于失败条件,其异常显示为“未找到元素”。如果我处理了异常,如何执行其他如果?? 提前谢谢你的帮助 这里的问题是,如果任何元素查找失败,测试将以NoTouchElement或Element not Found异常终止,因为元素不是dom的一部分。为了避免这种情况,您可以稍微欺骗代码,或者进行另一次检查,看看元素是否首先存在 我宁愿找到元素并匹配文本,然后执行其他任务 if(driver.findElemen

在上面的代码中,if条件失败表示如何执行else if(xpathcondition), 对于失败条件,其异常显示为“未找到元素”。如果我处理了异常,如何执行其他如果??
提前谢谢你的帮助

这里的问题是,如果任何元素查找失败,测试将以NoTouchElement或Element not Found异常终止,因为元素不是dom的一部分。为了避免这种情况,您可以稍微欺骗代码,或者进行另一次检查,看看元素是否首先存在

我宁愿找到元素并匹配文本,然后执行其他任务

if(driver.findElement(By.xpath("//div/h3[contains(text(),'MOVENPICK HOTEL DEIRA')]")).isDisplayed())
{
}
else if(driver.findElement(By.xpath("//div/h3[contains(text(),'HOTEL INN')]")).isDisplayed())
{
}
理想情况下,
isDisplayed()
应该返回false,而不是抛出异常

你可以选择这个答案。另一种方法是(根据)



同时检查此项

谢谢您的回答。但在这种情况下,我会遇到这样的问题,如果(条件)失败,它不会直接执行(else If)它的执行第三个else部分,对此有什么想法吗?嘿,我认为需要在driver.findElements的帮助下将WebElement存储在动态数组中。在这种情况下,其他部分已执行。谢谢你的主意!!请提供给我你正在处理的html,我会明白为什么会这样。特别是我想知道这些元素中是否有一个变得不可见或完全消失。您好,您可以查看网站下方的“点击酒店”部分,并在重定向到搜索结果后选择任意三家酒店。你能给出这个问题的例子吗,Url:你能给出关于这个问题的详细描述吗。
// Write a selector that would meet the find both elements
WebElement element = driver.findElement(By.cssSelector("div h3"));

if (element.getText().contains("MOVENPICK HOTEL DEIRA")) {
    //do this
} else if (element.getText().contains("HOTEL INN")) {
    //do something
} else {
    //do nothing and log some error
}
try {

 if(driver.findElement(By.xpath("//div/h3[contains(text(),'MOVENPICK HOTEL DEIRA')]")).isDisplayed())
    {  }

}catch(){  //catch executes the else part when the exception is thrown.

    if(driver.findElement(By.xpath("//div/h3[contains(text(),'HOTEL INN')]")).isDisplayed())
    {    }

}