user3729477
user3729477

Reputation: 11

How to execute script when element is not found in selenium

WebElement Find=null;
Find=driver.findElement(By.xpath("//*[@id='headerapp']/div/div/ul/li[2]/a"));
if(Find!=null && Find.isDisplayed()){
    Actions action=new Actions(driver);
    action.moveToElement(Find).build().perform();
    driver.findElement(By.xpath("//*[@id='headerapp']/div/div/ul/li[2]/ul/li[1]/a")).click();
    driver.manage().timeouts().implicitlyWait(15000, TimeUnit.SECONDS);
}
Thread.sleep(2000);
WebElement mybuyers=null;
try{
    mybuyers=driver.findElement(By.xpath("//a[contains(., 'My Buyers')]"));
    if(mybuyers!=null && mybuyers.isDisplayed()){
        Actions action=new Actions(driver);
        action.moveToElement(mybuyers).build().perform();
        mybuyers.click();
        driver.manage().timeouts().implicitlyWait(15000, TimeUnit.SECONDS);
    }
}catch(Exception e){
    System.out.println("My Buyers link is not displayed");
}
finally{
    driver.manage().timeouts().implicitlyWait(15000, TimeUnit.SECONDS);
}
Thread.sleep(2000);
WebElement mylisting=null;
try{
    mylisting=driver.findElement(By.xpath("//a[contains(., 'My Listing')]"));
    if(mylisting!=null && mylisting.isDisplayed()){
        Actions action=new Actions(driver);
        action.moveToElement(mylisting).build().perform();
        mybuyers.click();
        driver.manage().timeouts().implicitlyWait(15000, TimeUnit.SECONDS);
    }
}catch(Exception e){
    System.out.println("My Listing link is not displayed");
}
finally{
    driver.manage().timeouts().implicitlyWait(15000, TimeUnit.SECONDS);
}

Upvotes: 0

Views: 1061

Answers (1)

Moe Ghafari
Moe Ghafari

Reputation: 2267

Use FindElements instead of FindElement like this:

 Boolean isMyBuyersPresent = driver.findElements(By.yourLocator).size() > 0

And

if(isMyBuyersPresent)
{
    //You can re-find as below, or refactor the code and 
    //create a list in the above snippet and grab the first element here

    mybuyers= driver.findElements(By.yourLocator)
}

Upvotes: 1

Related Questions