Хочу сделать скриншот сайта. Использую 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();
}
}
}
Решено.
Была ошибка из-за того что phantomjs
не мог записать в лог файл.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть активити 1 в котором загружени фрагмент и в этом фрагменте есть кнопка, при нажатии на которую я хочу, чтоб открывалась activity 2 в которой...
closeTo выделяется красным цветомКак импортировать его или метод? Не могу сделать тест
У меня есть приложение - сервер OAuth2 и приложение клиентКак правильно сделать logout для клиента?