2013-01-31 7 views
5

Sto cercando di salvare una colonna di elementi in una lista da una struttura di tabella con l'espressione sottostante su cui ho bisogno di eseguire un'operazione di clic per convalidare quei pulsanti.Come memorizzare l'elenco di WebElement da una tabella in un elenco mentre si implementa il webdriver di selenio?

Codice:

Ho il valore per Total_element = 37.

for(int start=0; start <= Total_element; start++) 
{ 
    int startn=start+1; 
    System.out.println(start); 
    List <WebElement> Element1 = new ArrayList<WebElement>() ; 

    try{ 
     Element1.add(Naveen.findElement(By.xpath(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"))); 
    }catch(Throwable t){ 
     System.out.println(t); 
    } 
    System.out.println(Element1.get(start)); 
    System.out.println("The element" + start + "is :"+ Element1.get(start)); 
    Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 
    Naveen.findElement(By.xpath(".//*[@id='action']/a/span/div")).click(); 
    System.out.println("The element" + start + "is :"+ Element1); 
    Thread.sleep(5000); 
} 

Errore:

quando si tenta di recuperare gli elementi dalla lista ottengo il seguente output:

[[FirefoxDriver: firefox on XP (586a8f1f-f784-4ae7-adf5-5f920dfad8e0)] -> xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

ulteriormente che il mio sta dicendo la mia operazione sta fallendo.

+0

u può incollare piena stacktrace..I che ci sia qualcosa di sbagliato con l'XPath o non è in grado di localizzare l'elemento –

risposta

1

In realtà ciò che sta accadendo media, il tipo di ritorno del

driver.findElemnt(By.xpath("xpath")); 

è il WebElement. Mentre si aggiunge il codice sopra allo ArrayList, verrà aggiunto il WebElement. Il WebElement contiene le informazioni relative al

Driver Used - FirefoxDriver
Browser session value - 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
locator used - XPath: .//*[@ id = 'data_grid']/tbody/tr [ 1]/td [2]/a/img]

Se si tenta di recuperare l'elemento Web, verranno restituite tutte queste cose. Questo è ciò che accade nel tuo caso e ricevi un errore mentre provi a fare clic.

È possibile aggiungere solo lo Xpath locator nello ArrayList. Funzionerà.

Prova questo

ArrayList<String> Element1 = new ArrayList<String>(); 
Element1.add(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"); 

driver.findElement(By.xpath(Element1.get(`startn`))).click(); 
1

Invece di:

Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 

prova:

Element1.get(start).click(); 
Problemi correlati