2016-11-28 2 views
0

Ich habe eine Aufgabe als Administrator erstellt und zugewiesen Writer.Als ein Schriftsteller, muss ich die Aufgabe suchen und klicken Sie auf diese bestimmte Aufgabe Bearbeitungssymbol, ich bin nicht in der Lage, die Aufgabe in der Liste zu finden. Auf einer Seite wird die Aufgabe 10 angezeigt, die Aufgabe kann auf der ersten oder zweiten Seite sein. Kann mir jemand mit selenium Code dafür helfen. enter image description hereSelenium-Skript funktioniert nicht

Edit:

List<WebElement> EditButtons = d.findElements(By.cssSelector("a[title='Edit Row']")); 
        String textvalue = d.findElement(By.xpath("//div[@id='main-content']/div[2]/div/div[1]/div[3]/div/div/table/tbody/tr[5]/td[1][contains(text(),'26_Test4')]")).getText(); 
        Thread.sleep(3000); 
        System.out.println(textvalue); 
        //Horizontal scroll 
        JavascriptExecutor js = (JavascriptExecutor)d; 
        js.executeScript("window.scrollBy(2000,0)", ""); 
        JavascriptExecutor js = (JavascriptExecutor) d; 
        //Edit icon path 
        d.findElement(By.xpath("//div[@id='main-content']/div[2]/div/div[1]/div[3]/div/div/table/tbody/tr[5]/td[12]/i")).click(); 

bearbeiten

I am getting error 
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 3 
    at java.util.ArrayList.rangeCheck(Unknown Source) 
    at java.util.ArrayList.get(Unknown Source) 

-Code

//vertical scroll 
      JavascriptExecutor jse3 = (JavascriptExecutor)d; 
      jse3.executeScript("window.scrollTo(0, document.body.scrollHeight)"); 
      Thread.sleep(2000); 
      //Zoomout 
      JavascriptExecutor js = (JavascriptExecutor) d; 
      js.executeScript("document.body.style.zoom='90%'"); 
      Thread.sleep(2000); 
      System.out.println("Zoomout is successfull"); 
      List<WebElement> dataTitles = d.findElements(By.xpath("//td[@data-title='Title ']")); 
      //System.out.println(dataTitles); 
      List<WebElement> editIcons= d.findElements(By.xpath("//td[12]/i")); 
      int index=0; 
      for(WebElement element : dataTitles) 
      { 
      if(element.getText().equalsIgnoreCase("28_res2")) 
      { 
      break; 
      } 
      index = index + 1; 
     } 

      editIcons.get(index).click(); 
+0

Können Sie den Code teilen, den Sie ausprobiert haben? –

+0

@AnishPillai Ich habe den Code aktualisiert, bitte überprüfen Sie es. – Akshatha

+0

Haben Sie den Pfad für das Symbol "Bearbeiten" mithilfe von "firepath" überprüft, funktioniert es auf der Benutzeroberfläche? Oder hast du auch Probleme beim Schreiben des richtigen XPath? –

Antwort

0

Sehen Sie, ob so etwas für Sie funktioniert. Ich finde die Liste der Datentitel mit seiner Eigenschaft [@data-title='Title ']. Auch ich gehe davon aus, dass die Icons auch dieselben Eigenschaften haben werden, damit Sie auch eine Liste dafür bekommen können.

Ich finde den Index, bei dem die genauen Daten vorhanden sind, so dass ich diesen Index auf dem Symbol verwenden kann, um darauf zu klicken. Wenn Sie dieselbe Logik für mehrere Seiten wiederholen möchten, müssen Sie den gesamten Code in eine äußere Schleife einfügen, die die Seitennavigation behandelt.

List<WebElement> dataTitles = d.findElements(By.xpath("//td[@data-title='Title ']")); 
List<WebElement> editIcons= d.findElements(By.xpath("...something...")); 

int index=0; 
for(WebElement element : dataTitles) { 
    if(element.getText().equalsIgnoreCase("26_Test4") { 
    break; 
    } 
index = index + 1; 
} 

//Click on edit icon at index derived above 
editIcons.get(index).click; 
+0

Ich habe ein Update die Frage, bitte helfen Sie mir, den Fehler zu debuggen. Ich bekomme einen Fehler in der Zeile 'editIcons.get (index) .click();' – Akshatha

+0

Ich muss horizontal scrollen, um das Bearbeitungssymbol zu erhalten, da mein horizontaler Bildlauf nicht funktioniert habe. Ich habe den Ausschnitt herausgezoomt, um die Bearbeitungsschaltfläche sichtbar zu machen. Es klickt immer noch nicht auf das Bearbeitungssymbol. – Akshatha

Verwandte Themen