Dram

Рейтинг
1115
Регистрация
28.06.2008

Попробовал запустил драйвер через Джаву

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: 4
The 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>&nbsp;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

Уже вроде лучше, хоть что-то ... буду гуглить дальше

Sly32 - да блин знаю, у меня сын подошел посмотреть с чем я мучаюсь, сел рядом и на питоне запустил этот же селениум за пару минут!!! Зара мля! Тут же был изгнан из комнаты чтобы не делал бате нервы! )))

Большое спасибо за подробную инструкцию!

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 7010
Remote 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 #:
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

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

"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

lutskboy  спс, запустил фантом, все просто, все работает, спс!
Нет, ни хром ни лису отдельно не устанавливал. Может знаете ссылку на мануал где подробно расписано как запустить пхп + селениум чтобы поиграться в парсинге на этой связке?

1. Встроена.

2. Не получится...

придумал

  • $n- -
  •  
    И continue
Всего: 6928