Не могу запустить php-webdriver

12 3
D
На сайте с 28.06.2008
Offline
1018
574

1. Установил php composer.phar require facebook/webdriver

2. Скачал и запустил java -jar selenium-server-standalone-3.141.59.jar

3. Тестирую скрипт

<?php

// Указываем пространство имен
namespace Facebook\WebDriver;


// Указываем какие классы будут использоватся
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;

//Пподключаем автолоадер классов
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 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.)
  (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
На сайте с 22.11.2013
Offline
113
#1
попробуйте phantom js . может он подойдет
Н
На сайте с 27.02.2013
Offline
62
#2
Dram :
  (unknown error: DevToolsActivePort file doesn't exist)

Попробуйте подключать драйвер хрома, а не лисы

tommy-gung
На сайте с 22.11.2006
Offline
272
#3
firefox установлен?
Здесь не могла быть ваша реклама
D
На сайте с 28.06.2008
Offline
1018
#4
Нет, ни хром ни лису отдельно не устанавливал. Может знаете ссылку на мануал где подробно расписано как запустить пхп + селениум чтобы поиграться в парсинге на этой связке?
lutskboy
На сайте с 22.11.2013
Offline
113
#5

читайте мой коммент выше. работает нормально хоть и давно не обновлялся

не знаю как  пхп + селениум но можете попробовать node.js + pupetter . ето не сложно если есть небольшие знания js

парсить можно с ним все. даже то что на ajax при клике подгружается. можно подключить jquery если его нет на странице. тогда выборка чего то еще более упрощается

D
На сайте с 28.06.2008
Offline
1018
#6
lutskboy  спс, запустил фантом, все просто, все работает, спс!
D
На сайте с 28.06.2008
Offline
1018
#7

Теперь не могу соединить его с пхп, не поможите?

Вот что делаю.

В скрипте пхп

<?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

D
На сайте с 28.06.2008
Offline
1018
#8

Отвечаю сам себе, может еще кому-то поможет, вот код на получения хмл кода страницы

"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
На сайте с 29.03.2012
Offline
245
#9
Dram, вот это неправильный путь. Ты, вместо того, чтобы разобраться почему не работает, прикрутил еще один фреймворк как какую-то миддлварю. Зачем? 
D
На сайте с 28.06.2008
Offline
1018
#10
Sly32 #:
Dram, вот это неправильный путь. Ты, вместо того, чтобы разобраться почему не работает, прикрутил еще один фреймворк как какую-то миддлварю. Зачем? 

Sly32  я так и не нашел в сети работающих мануалов по запуску селениума + пхп.  Есть буквально пару штук, но выполнив все шаги получаю ошибку (самый первый пост).

Если вы знаете как запустить это добро, буду рад следовать вашим инструкциям

На данный момент сам селениум сервер запускается нормально, но при запуске скрипта php получаю ошибку

PHP Fatal error:  Uncaught Facebook\WebDriver\Exception\SessionNotCreatedException: Unable to create new service: ChromeDriverService
Build 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
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий