1. Установил php composer.phar require facebook/webdriver
2. Скачал и запустил java -jar selenium-server-standalone-3.141.59.jar
3. Тестирую скрипт
<?php
// Указываем пространство именnamespace FacebookWebDriver;
// Указываем какие классы будут использоватся
use FacebookWebDriverRemoteDesiredCapabilities;
use FacebookWebDriverRemoteRemoteWebDriver;
//Пподключаем автолоадер классов
require_once('/root/vendor/autoload.php');
// Задаем хост на котором запущен Selenium (localhost - если же на этом компьютере) и номер порта (4444 - порт по умолчанию, если мы не задали другой)
$host = 'http://localhost:4444/wd/hub';
// Если мы управляем Firefox, то инициализируем web драйвер (5000 - время ожидания ответа от Selenium) и запускаем Firefox
$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox(), 5000);
// Для chrom: $driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());// Подаем команду браузеру переход на URL: 'http://docs.seleniumhq.org/'
$driver->get('http://docs.seleniumhq.org/');
// Указываем id тега (menu_about), которым будем манипулировать
$tag = WebDriverBy::id('menu_about');
// Производим поиск на текущей странице указанного тега
$link = $driver->findElement( $tag);
// Ну и собственно щелкаем по заданному тегу
$link->click();
Получаю ошибку
PHP Fatal error: Uncaught FacebookWebDriverExceptionUnknownServerException: 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.)
(Driver info: chromedriver=76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}),platform=Linux 4.9.0-9-amd64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 271 milliseconds
В момент запуска скрипта в консоле где запустил Селениум — появляется сообщение
17:14:30.305 INFO [ActiveSessionFactory.apply] - Capabilities are: {
"browserName": "chrome",
"chromeOptions": {
"w3c": false,
"binary": ""
}
}
17:14:30.307 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.grid.session.remote.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Starting ChromeDriver 76.0.3809.68 (420c9498db8ce8fcd190a954d51297672c1515d5-refs/branch-heads/3809@{#864}) on port 10224
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
lutskboy
попробуйте phantom js . может он подойдет
Неуч
Dram : (unknown error: DevToolsActivePort file doesn’t exist)
Попробуйте подключать драйвер хрома, а не лисы
tommy-gung
firefox установлен?
Dram
Нет, ни хром ни лису отдельно не устанавливал. Может знаете ссылку на мануал где подробно расписано как запустить пхп + селениум чтобы поиграться в парсинге на этой связке?
lutskboy
читайте мой коммент выше. работает нормально хоть и давно не обновлялся
не знаю как пхп + селениум но можете попробовать node.js + pupetter . ето не сложно если есть небольшие знания js
парсить можно с ним все. даже то что на ajax при клике подгружается. можно подключить jquery если его нет на странице. тогда выборка чего то еще более упрощается
Dram
lutskboy спс, запустил фантом, все просто, все работает, спс!
Отвечаю сам себе, может еще кому-то поможет, вот код на получения хмл кода страницы
"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(); });
Sly32
Dram, вот это неправильный путь. Ты, вместо того, чтобы разобраться почему не работает, прикрутил еще один фреймворк как какую-то миддлварю. Зачем?
Dram — Профиль вебмастера — Форум об интернет-маркетинге
searchengines.guru
Dram — Профиль вебмастера
Dram
Sly32 #: Dram, вот это неправильный путь. Ты, вместо того, чтобы разобраться почему не работает, прикрутил еще один фреймворк как какую-то миддлварю. Зачем?
Sly32 я так и не нашел в сети работающих мануалов по запуску селениума + пхп. Есть буквально пару штук, но выполнив все шаги получаю ошибку (самый первый пост).
Если вы знаете как запустить это добро, буду рад следовать вашим инструкциям
На данный момент сам селениум сервер запускается нормально, но при запуске скрипта php получаю ошибку
Dram
1. Установил php composer.phar require facebook/webdriver
2. Скачал и запустил java -jar selenium-server-standalone-3.141.59.jar
3. Тестирую скрипт
Получаю ошибку
В момент запуска скрипта в консоле где запустил Селениум — появляется сообщение
lutskboy
Неуч
(unknown error: DevToolsActivePort file doesn’t exist)
Попробуйте подключать драйвер хрома, а не лисы
tommy-gung
Dram
lutskboy
читайте мой коммент выше. работает нормально хоть и давно не обновлялся
не знаю как пхп + селениум но можете попробовать node.js + pupetter . ето не сложно если есть небольшие знания js
парсить можно с ним все. даже то что на ajax при клике подгружается. можно подключить jquery если его нет на странице. тогда выборка чего то еще более упрощается
Dram
Dram
Теперь не могу соединить его с пхп, не поможите?
Вот что делаю.
В скрипте пхп
В скрипте phantom.js
В итоге выводит в консоль NULL
Dram
Отвечаю сам себе, может еще кому-то поможет, вот код на получения хмл кода страницы
Sly32
Dram
Dram, вот это неправильный путь. Ты, вместо того, чтобы разобраться почему не работает, прикрутил еще один фреймворк как какую-то миддлварю. Зачем?
Sly32 я так и не нашел в сети работающих мануалов по запуску селениума + пхп. Есть буквально пару штук, но выполнив все шаги получаю ошибку (самый первый пост).
Если вы знаете как запустить это добро, буду рад следовать вашим инструкциям
На данный момент сам селениум сервер запускается нормально, но при запуске скрипта php получаю ошибку