Автор Тема: Selenium, php, Composer  (Прочитано 515 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ilya666

  • Новичок форума
  • Сообщений: 2
Selenium, php, Composer
« : 02 Апреля 2021, 12:29:08 »
Доброго времени суток, недавно арендовал себе сервер под VPN в Голландии.
VPN встал, работает в общем все хорошо.
Так как VPN не публичный и нагрузка маленькая я подумал почему бы и не нагрузить его ещё и другой полезной нагрузкой, например браузером с возможностью получения кода с выполненным JS из php.
Сказано? Сделано!
Ставил так:
cd /var/www/html
sudo apt-get update
sudo apt-get install -y curl unzip xvfb libxi6 libgconf-2-4
sudo apt-get install default-jdk
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
sudo echo "deb [arch=amd64]  http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
wget https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/chromedriver
sudo chown root:root /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver
wget https://selenium-release.storage.googleapis.com/3.13/selenium-server-standalone-3.13.0.jar
Далее переименовал selenium-server-standalone-3.13.0.jar в selenium-server-standalone.jar
Запускал так:
Xvfb :0 -ac -screen 0 1024x768x24 &
xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar
Все вроде запустилось и сервер Selenium работал.
Далее из php скрипта подключаюсь к нему, содержимое скрипта:
<?php
namespace Facebook\WebDriver;
use 
Facebook\WebDriver\Remote\DesiredCapabilities;
use 
Facebook\WebDriver\Remote\RemoteWebDriver;
//подключаем autoloader, сгенерированный для нас composer’ом
require_once('/var/www/html/vendor/autoload.php');
$host 'http://localhost:4444/wd/hub';
$driver RemoteWebDriver::create($hostDesiredCapabilities::chrome());
$driver->navigate()->to('https://google.com');
//$driver->get('https://google.com');
$driver->wait(51000)->until(
WebDriverExpectedCondition::titleContains('Google')
);
sleep(5);
$driver->close();

И на выходе получаю ошибку:
Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownErrorException: 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.) Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53' System info: host: 'vm2040044', ip: 'XX.XX.XX.XX', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.0-14-amd64', java.version: '11.0.9.1' Driver info: driver.version: unknown remote stacktrace: #0 0x56213d8412b9 <unknown> in /var/www/html/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:139 Stack trace: #0 /var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php(371): Facebook\WebDriver\Exception\WebDriverException::throwException('unknown error', 'unknown error: ...', Array) #1 /var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php(135): Fac in /var/www/html/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php on line 139
Вопрос собственно в том, как заставить эту балалайку работать.
Заранее спасибо.


 

Оффлайн dzhoser

Re: Selenium, php, Composer
« Ответ #1 : 02 Апреля 2021, 13:42:11 »
Имеется
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
Должно быть
$driver = RemoteWebDriver::create($host, $desired_capabilities::chrome());
 

Оффлайн Ilya666

  • Новичок форума
  • Сообщений: 2
Re: Selenium, php, Composer
« Ответ #2 : 02 Апреля 2021, 13:54:02 »
Имеется
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
Должно быть
$driver = RemoteWebDriver::create($host, $desired_capabilities::chrome());
PHP notice: Undefined variable: desired_capabilities
$driver = RemoteWebDriver::create($host, $desired_capabilities::chrome());
« Последнее редактирование: 02 Апреля 2021, 19:07:44 от Ilya666 »
 

Теги: