Hallo Zusammen,
kann mir einer erklären, was ich falsch mache? Und zwar geht es um folgendes. Ich bin gerade dabei ein paar Seleniumtests in Java zu erstellen.
Dabei wiederholen sich einige Methoden. Dies möchte ich verhindern, damit der Code nicht unnötig lang ist.
Ich habe zwei Klassen: class SeleniumMethods (enthält eine Methode, die wiederholt benötigt wird) und class testSearching (enthält Testcode)
Wenn ich testSearching abspiele kommt folgender Fehler:
FAILED: testSearch
java.lang.AssertionError: timeout
at Testcases.SeleniumMethods.checkTextPresent(SeleniumMethods.java:15)
at Testcases.testSearching.testSearch(testSearching.java:25)
Es ist auch nicht so, dass er diesen Text "Software" nicht findet, denn alles funktioniert bestens, wenn ich diese Methode innerhalb der testSearching-Klasse platziere, also so:
Für Ratschläge bedanke ich mich im Voraus.
vg sinoptik
kann mir einer erklären, was ich falsch mache? Und zwar geht es um folgendes. Ich bin gerade dabei ein paar Seleniumtests in Java zu erstellen.
Dabei wiederholen sich einige Methoden. Dies möchte ich verhindern, damit der Code nicht unnötig lang ist.
Ich habe zwei Klassen: class SeleniumMethods (enthält eine Methode, die wiederholt benötigt wird) und class testSearching (enthält Testcode)
Java:
package Testcases;
public class testSearching {
private Selenium selenium;
SeleniumHelper sm = new SeleniumMethods(selenium);
@BeforeTest
public void startSelenium() {
selenium = new SeleniumStarter().getSelenium();
selenium.start();
}
@Test
public void testSearch() throws InterruptedException {
selenium.open("/");
selenium.waitForPageToLoad("30000");
selenium.type("q", "Software");
selenium.click("//button[@value='submit']");
sm.checkTextPresent("Software");
}
}
Java:
package Testcases;
public class SeleniumMethods {
public Selenium selenium;
public SeleniumMethods (Selenium selenium) {
this.selenium = selenium;
}
public void checkTextPresent(String text) throws InterruptedException {
for (int second = 0;; second++) {
try { selenium.isTextPresent(text); break; } catch (Exception e) {}
if (second >=30) fail ("timeout");
Thread.sleep(1000);
}
}
}
Wenn ich testSearching abspiele kommt folgender Fehler:
FAILED: testSearch
java.lang.AssertionError: timeout
at Testcases.SeleniumMethods.checkTextPresent(SeleniumMethods.java:15)
at Testcases.testSearching.testSearch(testSearching.java:25)
Es ist auch nicht so, dass er diesen Text "Software" nicht findet, denn alles funktioniert bestens, wenn ich diese Methode innerhalb der testSearching-Klasse platziere, also so:
Java:
......
@Test
public void testSearch() throws InterruptedException {
selenium.open("/");
selenium.waitForPageToLoad("30000");
selenium.type("q", "Software");
selenium.click("//button[@value='submit']");
for (int second = 0;; second++) {
try { selenium.isTextPresent("Software"); break; } catch (Exception e) {}
if (second >=10) fail ("timeout");
Thread.sleep(1000);
}
Für Ratschläge bedanke ich mich im Voraus.
vg sinoptik
Zuletzt bearbeitet: