2016-12-09 3 views
0

Ich schreibe ein Selen Testskript für meine Schüler-Management-System. Ich habe eine Situation, in der ich Werte eingeben muss und 15 Mal auf dieselbe Schaltfläche klicke. Also habe ich ein for-Schleifen für das Szenario verwendet.Fügen Sie mehrere Datensätze mit Forr-Schleife in Selen

Hier ist der Bildschirm, den ich testen muss.

mark

So Ich brauche zwei Werte in den Bereich Textfelder und wählen Sie Klasse aus der Dropdown-Liste markieren und Schaltfläche hinzufügen klicken. Ich muss dieses Szenario 15 Mal machen.

Hier sind die Werte, die ich

data

Hier ist die Dropdown-Liste eingeben.

grades

Ich habe versucht, für das folgende Szenario vor.

for(int x=95; x<=11; x=x-6){ 

      driver.findElement(By.xpath("//input[@type='number']")).sendKeys(""+x); 

      for(int y=100; y<=16; y=y-6){ 

       driver.findElement(By.xpath("(//input[@type='number'])[2]")).sendKeys(""+y); 

       for(int z=1; z<=15; z++){ 

        Select mark2 = new Select(driver.findElement(By.xpath("//select[@id='gradeSelector']"))); 
        mark2.selectByValue(""+z); 
        driver.findElement(By.xpath("//input[@value='Add']")).click(); 
       } 
      } 
     } 

aber nichts passiert.

Vielen Dank im Voraus. :)

Antwort

0

Versuchen Sie folgendes:

int x=95, y=100; 
    for(int z=1; z <=15; z++){ 

     driver.findElement(By.xpath("//input[@type='number']")).sendKeys(""+x); 
     driver.findElement(By.xpath("(//input[@type='number'])[2]")).sendKeys(""+y); 
     Select mark2 = new Select(driver.findElement(By.xpath("//select[@id='gradeSelector']"))); 
     //mark2.selectByValue(""+z); 
     mark2.selectByIndex(z); 
     driver.findElement(By.xpath("//input[@value='Add']")).click(); 

     x=x-6; 
     y=y-6; 
    } 
+0

, das nicht funktioniert. 95 und 100 Typen in den zwei Textfeldern und Test schlägt fehl. :) –

+0

Könnte bitte die Ausnahme Trace für Fehler teilen? – Mahipal

+0

In diesem speziellen Szenario können Sie auch die Methode 'selectByIndex' anstelle von 'selectByValue' verwenden, wie im obigen modifizierten Code gezeigt. Bitte versuchen Sie den geänderten Code und lassen Sie mich wissen, ob der Code Ihren Erwartungen entspricht. – Mahipal

0

Es ist nur die for-Schleife eine falsche Logik ist - die x<=11 Bedingung nie wahr ergibt, ersetzen:

for(int x=95; x<=11; x=x-6) { 

mit:

for(int x=95; x>=11; x=x-6) { 
+0

Ich denke jetzt ist meine innere Schleife irgendwie falsch. Es druckt nur '958983777165595347413529231711' in dem ersten Textfeld –

Verwandte Themen