Я пытаюсь бежать facebook/php-webdriver
пакет, но я застрял в этой стадии.
Он отлично работает на моем локальном хосте, но на моем сервере Ubuntu, после некоторого ожидания я получаю эту ошибку
Ошибка скручивания для HTTP POST в / сеанс с параметрами:
{«requiredCapabilities»: {«browserName»: «firefox»}} Тайм-аут операции
после 30001 миллисекунд с 0 полученными байтами
Вот как выглядит мой код
$browser_type = 'chrome';
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = array(\Facebook\WebDriver\Remote\WebDriverCapabilityType::BROWSER_NAME => $browser_type);
$driver = \Facebook\WebDriver\Remote\RemoteWebDriver::create($host, $capabilities);
$driver->get($setconnection);
$driver->get($setavail);
$cookie = $driver->manage()->getCookies();
$driver->close();
$cookie = reset($cookie);
$cookievalue = $cookie['value'];
По сути, я пытаюсь получить готовую информацию из этого запроса, у кого-нибудь есть какое-то решение, пожалуйста!
Ошибка говорит вам, что скрипт не может получить доступ к этому URL http://localhost:4444/wd/hub
даже ваш сценарий помещен на ту же машину, но он не может получить к себе доступ: localhost
Такая проблема обычно вызывается настройкой proxy / iptables / firewall / hostname на машине linux, пожалуйста, проверьте эти настройки.
Возможное дублирование: Настройка Selenium на CentOS7
Для машины с Windows не так много места, где можно управлять сетевым трафиком самой ОС, так что я знаю, что переменная окружения для прокси-сервера может это сделать, и настройка прокси в браузере.
Но для Linux-машины есть много мест, где можно настроить сетевой трафик, как я уже говорил выше. И для разных ОС Linux эти настройки находятся в разных файлах / местах или имеют разные cmd для этого.
Дополнительный, ныне VM / docker, для этих двух вещей настройка новых заданий более сложная.
Обычно это означает проблему с сеансом сервера Selenium. Ваш сервер ожидает открытия Firefox, но не может этого сделать. Вы должны использовать безголовый браузер (браузер, специально созданный для автоматизации)
На локальном хосте (вашем компьютере) есть среда отображения, экран вашего компьютера, Firefox просто запустится и закроется, как обычно.
Но на сервере вы, возможно, не настроили среду отображения, лучшее решение — это указать безголовое предложение firefox в веб-драйвере facebook php — https://github.com/facebook/php-webdriver/issues/506
$capabilities = \Facebook\WebDriver\Remote\DesiredCapabilities::firefox();
$capabilities->setCapability(
'moz:firefoxOptions',
['args' => ['-headless']]
);