Java 如何在selenium中处理if(element.display)

Java 如何在selenium中处理if(element.display),java,selenium,if-statement,Java,Selenium,If Statement,我想检查元素是否显示——如果为true,则执行一些代码。 如果没有,则执行其他一些代码 当我尝试这样做时,如果条件为false,并且元素不存在,那么 试验压榨。 它不会继续到else或else if 我想知道怎么处理 在下一段代码中,我想检查箭头边是向上还是向下,如果是向上,那么做一些其他的事情,做一些不同的事情 if (ca.arrowuppicknewaddress().isDisplayed()) { // ca.arrowpicknewaddress().click(

我想检查元素是否显示——如果为true,则执行一些代码。 如果没有,则执行其他一些代码

当我尝试这样做时,如果条件为false,并且元素不存在,那么 试验压榨。 它不会继续到else或else if

我想知道怎么处理

在下一段代码中,我想检查箭头边是向上还是向下,如果是向上,那么做一些其他的事情,做一些不同的事情

if (ca.arrowuppicknewaddress().isDisplayed())
    {
    
//  ca.arrowpicknewaddress().click();
//  Thread.sleep(2000);     
    driver.findElement(By.xpath("/html[1]/body[1]/div[5]/div[1]/div[2]/div[1]/section[1]/div[2]/div[1]/div[1]/section[1]/div[1]/ul[1]/li[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/span[1]")).click();
    Thread.sleep(1000);
//  ca.arrowpicknewaddress().click();
//  Thread.sleep(1000);
//  driver.findElement(By.xpath("/html[1]/body[1]/div[5]/div[1]/div[2]/div[1]/section[1]/div[2]/div[1]/div[1]/section[1]/div[1]/ul[1]/li[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[3]/div[1]/div[2]/div[1]/span[1]")).click();
//  Thread.sleep(3000);
    driver.findElement(By.xpath("//*[@id=\"deliveryScheduleModalData\"]/div[1]/button")).click();
    Thread.sleep(2000);
    ca.addOTC().click();
    Thread.sleep(2000);
    ca.PaymentToExendedCart().click();
    Thread.sleep(2000);
    ExtendedCart ec = new ExtendedCart(driver);
    ec.ToCheckOut().click();    
    }
     
    
        ca.arrowpicknewaddress().click();
        Thread.sleep(2000);     
        driver.findElement(By.xpath("/html[1]/body[1]/div[5]/div[1]/div[2]/div[1]/section[1]/div[2]/div[1]/div[1]/section[1]/div[1]/ul[1]/li[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/span[1]")).click();
        Thread.sleep(1000);
有人能帮我做对吗

提前感谢

两种方式:

1。列表

您可以使用(
findElements
)在
列表中获取该元素,然后如果
大小为>0
,则执行所需代码,否则如果
为0
,则执行其他部分

代码:

if (driver.findElements(By.xpath("Some xpath here")).size() > 0) {
   // execute if block here
}
else {
  // execute else block here
}
You will not have any exception. 
try {
if(someWebElement.isDisplayed()){

}
catch(){
write the code if element is not found
}

}
好处:

if (driver.findElements(By.xpath("Some xpath here")).size() > 0) {
   // execute if block here
}
else {
  // execute else block here
}
You will not have any exception. 
try {
if(someWebElement.isDisplayed()){

}
catch(){
write the code if element is not found
}

}
缺点:

if (driver.findElements(By.xpath("Some xpath here")).size() > 0) {
   // execute if block here
}
else {
  // execute else block here
}
You will not have any exception. 
try {
if(someWebElement.isDisplayed()){

}
catch(){
write the code if element is not found
}

}
等待时间
,假设元素不存在,那么
findelelements
将等待(
ImplicitWait
)找到它,所以需要花费一些时间

2。一定要尝试接球:

if (driver.findElements(By.xpath("Some xpath here")).size() > 0) {
   // execute if block here
}
else {
  // execute else block here
}
You will not have any exception. 
try {
if(someWebElement.isDisplayed()){

}
catch(){
write the code if element is not found
}

}

当测试崩溃时,您是否遇到任何错误?