ankit rawat
ankit rawat

Reputation: 31

Error while checking the clickable web element

I am facing problem while checking the clickable web element. So i have to check the alphabetic series and some of the alphabet are clickable and some are not clickable.

i used for loop for it starting with xpath of alphabet 'A' and going in loop till alphabet 'Z'.

but as soon as xpath of alphabet A is click & pass it goes to alphabet 'B' which is not clickable and due to this whole script is getting fail.

here is the code

for(int j=3; j<=26;j++) {
    String T1 =".//*[@id='twctvEl']/div/div/div[1]/ul/li[";
    String T2 = "]/a";
    String T12 = T1+j+T2;
    chrome.findElement(By.xpath(T12)).click();
    String alpha =chrome.findElement(By.xpath(T12)).getText();
    System.out.println("checking the alphabet"+alpha);
}

Please advice here

NOTE: In the series of alpha bet from A-Z only B,Q,S,X,Y,Z are not clickable rest all are clickable.

Upvotes: 3

Views: 67

Answers (3)

Sanja Paskova
Sanja Paskova

Reputation: 1110

You can add waits before element to become clickable:

for(int j=3; j<=26;j++) 

{

    String T1 =".//*[@id='twctvEl']/div/div/div[1]/ul/li[";
    String T2 = "]/a";        
    String T12 = T1+j+T2;        
    WebElement el = chrome.findElement(By.xpath(T12));        
    WebDriverWait wait = new WebDriverWait(driver, timeout);            
    WebElement el= wait.until(ExpectedConditions.elementToBeClickable(element));
    el.click();        
    String alpha =el.getText();       
    System.out.println("checking the alphabet"+alpha);

}

Upvotes: 2

Sandipan Pramanik
Sandipan Pramanik

Reputation: 348

Well, it seems that when you click the element "A", it take you to another page or context and for this reason, during next iteration chrome driver is not able to find your Element "B" using xPath.

Upvotes: 0

Guy
Guy

Reputation: 51009

You can check if the element is visible and enabled before clicking on it

WebElement letter = chrome.findElement(By.xpath(T12));
if (letter.isDisplayed() && letter.isEnabled()) {
    letter.click();
}

Upvotes: 0

Related Questions