2013-01-31 4 views
5

Ich versuche, eine Spalte von Elementen in einer Liste aus einer Tabellenstruktur mit dem folgenden Ausdruck zu speichern, auf dem ich eine Klickoperation ausführen muss, um diese Schaltflächen zu überprüfen.Wie man eine Liste von WebElements von einer Tabelle in einer Liste speichert, während selen webdriver implementiert wird?

Code:

Ich habe den Wert für 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); 
} 

Fehler:

wenn ich versuche, die Elemente aus der Liste ich die folgende Ausgabe abzurufen:

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

weiter, die meine ist meine Operation sagen versagt.

+0

kann u Paste voll stacktrace..I denken es ist etwas falsch mit dem XPath oder kann das Element nicht finden –

Antwort

1

Eigentlich Was geschieht, der Rückgabetyp der

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

ist das WebElement. Während Sie den obigen Code zu ArrayList hinzufügen, wird das WebElement hinzugefügt. Die WebElement enthält die Informationen über die

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

Wenn Sie versuchen, das Web-Element abzurufen, werden alle diese Dinge zurückgegeben. Das passiert in Ihrem Fall und Sie erhalten Fehler beim Klicken.

Sie können nur die Xpath locator allein in die ArrayList hinzufügen. Es wird klappen.

Versuchen Sie, diese

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

Statt:

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

Versuch:

Element1.get(start).click(); 
Verwandte Themen