- Treiber.wait() throws IllegalMonitorStateException
Alle Varianten von wait(...) sind werfen die folgende Ausnahme aus dem folgenden code. Was mache ich falsch?
java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at LoginPage.main(LoginPage.java:29)
try
{
driver.get("http://domain:port/coco/webapp/login/login.faces");
driver.findElement(By.id("clientCode")).sendKeys("coco");
driver.findElement(By.id("systemCode")).sendKeys("consumer");
driver.findElement(By.id("userId")).sendKeys("ffadmin");
driver.findElement(By.id("password")).sendKeys("password");
driver.findElement(By.className("af_commandButton")).click();
driver.wait();
Assert.assertTrue(driver.getPageSource().contains("Administration"));
}
catch (Exception e)
{
e.printStackTrace();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur
wait
auf ein Objekt wenn Sie erworben haben, das Schloss für Sie mitsynchronized
.Ich weiß nicht, ob Sie gemeint Verwendung
wait
mit WebDriver - wenn Sie sind, brauchen Sie etwas wie:Jedoch, wenn Sie auf etwas warten zu auftreten, ist es wahrscheinlicher, dass es eine alternative Methode, die Sie gemeint sind zu verwenden. Vielleicht
WebDriverWait
?Ich hoffe das hilft dir
ODER
Bitte beachten Sie, dass ich habe nicht ausgeführt, in diesem code, da ich nicht haben, webdriver, aber ich schrieb dies, nachdem er javadocs.
Entnehmen Sie bitte javadocs für weitere details.
Dies ist ein necro, aber da gibt es nicht bessere Antworten, und jemand anderes könnte geschehen durch: Sie sind dem Aufruf der falschen Methode.
Haben Sie wahrscheinlich gedacht, der Anruf der Selen-Methode zu warten, bis eine Bedingung:
https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html
Was Sie eigentlich genannt wurde, die sehr primitiv multithreading-Methode (warten, bis jemand anderes gerufen hat, notify() auf dein thread):
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
Verwenden Sie den folgenden code, dieser wird funktionieren.