Ошибка при создании PhantomJSDriver Selenium Java

366
19 июля 2017, 22:42

Хочу сделать скриншот сайта. Использую phantomjs. Запускаю в отдельном потоке. Но тут WebDriver driver = new PhantomJSDriver(); возникает ошибка:

Unable to open file '/var/lib/tomcat8/phantomjsdriver.log'
  phantomjs://platform/fs.js:79 in open
  phantomjs://platform/logger.js:95 in addLogFile
  phantomjs://platform/config.js:76 in apply
  phantomjs://platform/config.js:98 in init
{"chats":0}
Exception in thread "pool-1-thread-1" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800'
System info: host: 'vps429624', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-83-generic', java.version: '1.8.0_131'
Driver info: driver.version: PhantomJSDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:625)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:116)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:105)
    at org.openqa.selenium.phantomjs.PhantomJSDriver.<init>(PhantomJSDriver.java:95)
    at com.online.utils.Screenshot.run(Screenshot.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: The process has not exited yet therefore no result is available ...
    at org.apache.commons.exec.DefaultExecuteResultHandler.getException(DefaultExecuteResultHandler.java:76)
    at org.openqa.selenium.os.UnixProcess.checkForError(UnixProcess.java:174)
    at org.openqa.selenium.os.CommandLine.checkForError(CommandLine.java:183)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:179)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:168)
    at org.openqa.selenium.phantomjs.PhantomJSCommandExecutor.execute(PhantomJSCommandExecutor.java:78)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
    ... 10 more

КОД.

System.setProperty("phantomjs.binary.path", PATH);
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(new Screenshot(URL, FILE));
public class Screenshot extends Thread {
    private String URL;
    private File OUTPUT;
    public Screenshot(String url, File output) {
        this.URL = url;
        this.OUTPUT = output;
    }
    @Override
    public void run() {
        try {
            WebDriver driver = new PhantomJSDriver();
            driver.manage().window().setSize(Online.SCREEN_SIZE);
            driver.get(this.URL);
            //FileUtils.copyFile(((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE), new File(IMAGE + SEPARATOR + IMAGE_NAME));
            FileUtils.copyFile(((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE), this.OUTPUT);
            driver.quit();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Answer 1

Решено.

Была ошибка из-за того что phantomjs не мог записать в лог файл.

READ ALSO
Как отрыть фрагмент но при открытии положить в стак перед ним еще один фрагмент?

Как отрыть фрагмент но при открытии положить в стак перед ним еще один фрагмент?

У меня есть активити 1 в котором загружени фрагмент и в этом фрагменте есть кнопка, при нажатии на которую я хочу, чтоб открывалась activity 2 в которой...

200
Error running Tomcat: Can&#39;t find catalina.jar

Error running Tomcat: Can't find catalina.jar

Пытаюсь запустить Tomcat через IDEAПишет:

1098
Как импортировать метод closeTo?

Как импортировать метод closeTo?

closeTo выделяется красным цветомКак импортировать его или метод? Не могу сделать тест

299
Spring Security OAuth2 RestTempate logout

Spring Security OAuth2 RestTempate logout

У меня есть приложение - сервер OAuth2 и приложение клиентКак правильно сделать logout для клиента?

407