java.lang.Исключение IllegalMonitorStateException (java selenium)

#java #selenium

#java #selenium

Вопрос:

 package main_files;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class main_downloader {
    public static void main(String[] args) throws Exception {
        System.setProperty("webdriver.gecko.driver", "path\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.wait(1);
        driver.get("https://www.google.com/");
        driver.wait(5);
        driver.quit();
    }
}
  

по какой-то причине, когда я пытаюсь запустить этот код, он выдает мне эту ошибку

 1597445198205   geckodriver INFO    Listening on 127.0.0.1:7834
1597445198836   mozrunner::runner   INFO    Running command: "C:\Program Files\Mozilla Firefox\firefox.exe" "--marionette" "-foreground" "-no-remote" "-profile" "C:\Users\ahmed\AppData\Local\Temp\rust_mozprofileinTqzS"
JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory.
console.error: SearchCache: "_readCacheFile: Error reading cache file:" (new Error("", "(unknown module)"))
1597445201342   Marionette  INFO    Listening on port 22663
1597445201445   Marionette  WARN    TLS certificate errors will be ignored for this session
Aug 15, 2020 1:46:41 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Exception in thread "main" java.lang.IllegalMonitorStateException
    at java.lang.Object.wait(Native Method)
    at main_files.main_downloader.main(main_downloader.java:10)
  

я пробовал некоторые решения, но ничего не получалось!, кто-нибудь может помочь, пожалуйста !? Спасибо.

Комментарии:

1. Чего вы надеетесь достичь с помощью строк driver.wait(1) и driver.wait(5) ?

Ответ №1:

вызов функции wait() должен вызываться из синхронизированного блока, чтобы избежать этого исключения. Вы хотите перевести основной поток в режим ожидания, если да, пожалуйста, используйте Thread.sleep() вместо вызова функции wait().