Попробовал запустил драйвер через Джаву
java -"Dwebdriver.chrome.driver"=/var/www/com/chromedriver -jar /var/www/com/selenium.jar
Все запустилось, запускаю скрипт изменив
$host = 'http://localhost:4444';
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\WebDriverException: JSON decoding of remote response failed.Error code: 4The response: '<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="/assets/displayhelpservlet.css" media="all"/> <link href="/assets/favicon.ico" rel="icon" type="image/x-icon" /> <script src="/assets/jquery-3.1.1.min.js" type="text/javascript"></script> <script src="/assets/displayhelpservlet.js" type="text/javascript"></script> <script type="text/javascript"> var json = Object.freeze('{"consoleLink": "\u002fwd\u002fhub","type": "Standalone","class": "org.openqa.grid.web.servlet.DisplayHelpHandler$DisplayHelpServletConfig","version": "3.141.59"}'); </script></head><body><div id="content"> <div id="help-heading"> <h1><span id="logo"></span></h1> <h2>Selenium <span class="se-type"></span> v.<span class="se-version"></span></h2> </div> <div id="content-body"> <p> Whoops! The URL specified route in /var/www/com/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php on line 303
Уже вроде лучше, хоть что-то ... буду гуглить дальше
Большое спасибо за подробную инструкцию!
1. Установил через компостер php-webdriver/webdriver.
2. проверил версию хрома - Google Chrome 84.0.4147.89
3. Скачал ChromeDriver 84.0.4147.30
4. Перешел в папку куда скачал, запускаю chromedriver --port=7010 --whitelisted-ips=127.0.0.1
получаю в консоли
Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 7010Remote connections are allowed by a whitelist (127.0.0.1).Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Вроде запустился да? (Я кстати хч почему Starting ChromeDriver 76.0.3809.68 не соответствует тому номеру что я скачал)
4. Запускаю ваш скрипт изменив в нем только путь до autoload.php
но получаю ошибку
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownServerException: unknown error: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Sly32 я так и не нашел в сети работающих мануалов по запуску селениума + пхп. Есть буквально пару штук, но выполнив все шаги получаю ошибку (самый первый пост).
Если вы знаете как запустить это добро, буду рад следовать вашим инструкциям
На данный момент сам селениум сервер запускается нормально, но при запуске скрипта php получаю ошибку
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\SessionNotCreatedException: Unable to create new service: ChromeDriverServiceBuild info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'System info: host: 'fin', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.0-9-amd64', java.version: '1.8.0_222'Driver info: driver.version: unknown in /var/www/com/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:154
Отвечаю сам себе, может еще кому-то поможет, вот код на получения хмл кода страницы
"use strict";var page = require('webpage').create(), system = require('system'), url = system.args[1];page.open(url, function () { var str = page.evaluate(function () { return document.getElementsByTagName('html')[0].innerHTML }); console.log(str); phantom.exit();});
Теперь не могу соединить его с пхп, не поможите?
Вот что делаю.
В скрипте пхп
<?php$test = shell_exec('/usr/bin/phantomjs /var/www/com/phantom.js https://yandex.ru/');var_dump($test);
В скрипте phantom.js
"use strict";var page = require('webpage').create(), system = require('system'), url = system.args[1];page.open(url, function(status) { if (status === "success") { page.includeJs("https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { page.evaluate(function() { console.log($('h1').html()); }); phantom.exit(0); }); } else { phantom.exit(1); }});
В итоге выводит в консоль NULL
1. Встроена.
2. Не получится...
придумал