Hallo zusammen,
ich bin gerade etwas am verzweifeln, ich benutze Selenium um einen automatisierten Test für eine Webanwendung zu schreiben und bin dabei auf ein Problem gestoßen.
Ich hab zwei Methoden(Code weiter unten):
1) Klicke in das Passwortfeld
2) Schreibe das Passwortfeld
wenn ich beide Methoden einzeln in der Main ausführe funktioniert das einwandfrei, da ich aber für die Übersichtlichkeit die Methoden bündeln will hab ich noch eine Methode geschrieben die nichts anderes macht als die beiden Methoden nacheinander auszuführen.
Wenn ich diese Methode jetzt ausführe wird die erste Methode in einer Schleife ausgeführt und zwar bis vor den eigentlichen Aufruf der zweiten Methode, dafür hab ich einfache System.out benutzt.
Ich habe keine Ahnung wieso da eine Loop entstehen kann, hat wer eine Idee?
Hier der Code der Methoden:
Hier der Code für den Aufruf:
Hier ein Ausschnitt von der Konsolenausgabe:
ich bin gerade etwas am verzweifeln, ich benutze Selenium um einen automatisierten Test für eine Webanwendung zu schreiben und bin dabei auf ein Problem gestoßen.
Ich hab zwei Methoden(Code weiter unten):
1) Klicke in das Passwortfeld
2) Schreibe das Passwortfeld
wenn ich beide Methoden einzeln in der Main ausführe funktioniert das einwandfrei, da ich aber für die Übersichtlichkeit die Methoden bündeln will hab ich noch eine Methode geschrieben die nichts anderes macht als die beiden Methoden nacheinander auszuführen.
Wenn ich diese Methode jetzt ausführe wird die erste Methode in einer Schleife ausgeführt und zwar bis vor den eigentlichen Aufruf der zweiten Methode, dafür hab ich einfache System.out benutzt.
Ich habe keine Ahnung wieso da eine Loop entstehen kann, hat wer eine Idee?
Hier der Code der Methoden:
Code:
//Methode to click the Password Field
public int FieldClickPassword(WebDriver driver, WebDriverWait wait, int check, Logger Logfile, LoginPage loginPage)
{
System.out.println("A");
Logfile.createTestStep("LoginPage", "Click Password Field");
System.out.println("B");
if (wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/div/div/div/div/div/div/div/form/div[2]/div/input"))) != null)
//if (wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("loginForm:password"))) != null)
{
driver.findElement(By.xpath("/html/body/div/div/div/div/div/div/div/form/div[2]/div/input")).click();
//driver.findElement(By.id("loginForm:password")).click();
System.out.println("C");
}
else
{
check++;
//System.out.println("Password Field missing");
}
System.out.println("D");
Logfile.closeTestStep();
return check;
};
//Methode to send keys to the Password Field
public int FieldSendKeysPassword(WebDriver driver, WebDriverWait wait, int check, Logger Logfile, LoginPage loginPage)
{
System.out.println("F");
Logfile.createTestStep("LoginPage", "Insert Password in Password Field");
System.out.println("G");
if (wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/div/div/div/div/div/div/div/form/div[2]/div/input"))) != null)
//if (wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("loginForm:password"))) != null)
{
driver.findElement(By.xpath("/html/body/div/div/div/div/div/div/div/form/div[2]/div/input")).click();
//driver.findElement(By.id("loginForm:password")).click();
System.out.println("H");
}
else
{
check++;
//System.out.println("Password Field can't be written");
}
System.out.println("I");
Logfile.closeTestStep();
return check;
};
//Combined Methode to enter Password in the Password Field
public int FieldSetPassword(WebDriver driver, WebDriverWait wait, int check, Logger Logfile, LoginPage loginPage)
{
if (wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("loginForm:password"))) != null)
{
loginPage.FieldClickPassword(driver, wait, check, Logfile, loginPage);
System.out.println("E");
loginPage.FieldSetPassword(driver, wait, check, Logfile, loginPage);
System.out.println("J");
}
else
{
check++;
//System.out.println("Password Field can't be set");
}
return check;
};
Hier der Code für den Aufruf:
Code:
Das hier funktioniert nicht-->loginPage.FieldSetPassword(driver, wait, parameter.check, Logfile, loginPage);
Das hier funktioniert--> //loginPage.FieldClickPassword(driver, wait, parameter.check, Logfile, loginPage);
Das hier funktioniert--> //loginPage.FieldSendKeysPassword(driver, wait, parameter.check, Logfile, loginPage);
Hier ein Ausschnitt von der Konsolenausgabe:
Code:
A
<tr><td>LoginPage</td><td>Click Password Field</td><td>2020-04-30 09:41:37.480</td>
B
C
D
<td>2020-04-30 09:41:39.206</td><td>0:0:0:117</td><td bgcolor="green">OK</td></tr>
E
A
<tr><td>LoginPage</td><td>Click Password Field</td><td>2020-04-30 09:41:37.480</td>
B
C
D
<td>2020-04-30 09:41:39.377</td><td>0:0:0:141</td><td bgcolor="green">OK</td></tr>
E
A
<tr><td>LoginPage</td><td>Click Password Field</td><td>2020-04-30 09:41:37.480</td>
B
C
D
<td>2020-04-30 09:41:39.473</td><td>0:0:0:69</td><td bgcolor="green">OK</td></tr>
E
A
<tr><td>LoginPage</td><td>Click Password Field</td><td>2020-04-30 09:41:37.480</td>
B
C
D...