selenium webdriver Быстрый старт на PHP: Как начать в Linux (Ubuntu) на локальной машине

В этой заметке расскажем о быстром старте. Нашей целью будет открытие нужной нам странице в браузере chrome через команду из php-кода (и на этом все так как остальное - это уже задача кода вашего тестов, подробнее см. наш раздел о Селениуме).

Настройка Selenium и его зависимостей

Делаем следующее:

  1. Устанавливаем Java (если ещё нет)
  2. Уставливаем браузер Chrome (если ещё нет)
  3. Узнайте версию вашего браузера Chrome и скачайте для него драйвер (реализацию протокола webDriver) той же версии, доступные версии см. на сайте: https://chromedriver.chromium.org/downloads

    После того как скачали архив, поработаем с ним в терминале, распакуем, закинем в папку исполняемых, сменим владельца на рута и дадим права на выполнение (4 команды):

    unzip chromedriver_linux64.zip
    sudo mv chromedriver /usr/local/bin/chromedriver
    sudo chown root:root /usr/local/bin/chromedriver
    sudo chmod +x /usr/local/bin/chromedriver
    
  4. Дальше устанавливаем сам Selenium WebDriver, а именно Selenium Standalone Server (ему-то наш код и будет слать команды), а именно:

    На момент написания этого текста, последняя версия Selenium Standalone Server = 3.141.59 (см. раздел "Selenium Server (Grid)")

    Скачайте jar и запустите сервер командой (напр. для 3.141.59):

    java -jar selenium-server-standalone-3.141.59.jar
    

    Ну вот и все, далее можно переходить к клиентскому коду, где будет описываться содержание текста.

Пример проекта с тестирующим кодом (приемочное тестирование) на PHP

  1. Создадим какую-нибудь папку для проекта, перейдем в неё и в терминале выполним команду композера:
    composer require facebook/webdriver

    -- этот установит в директорию vendor знаменитый пакет с реализацией клиента для webDriver, именно этот пакет будет использовать наш код, чтобы общаться с Селениум-сервером.

  2. В той же папке, где выполнили предыдущую команду, создаем файл test.php с содержимым:


    require ('./vendor/autoload.php');
    use Facebook\WebDriver\Remote\DesiredCapabilities;
    use Facebook\WebDriver\Remote\RemoteWebDriver;
    use Facebook\WebDriver\Remote\DriverCommand;
    use Facebook\WebDriver\WebDriverExpectedCondition;
    use Facebook\WebDriver\WebDriverBy;

    $host = 'http://localhost:4444/wd/hub'; // прослушивается Selenium Standalone Server
    $desiredCapabilities = DesiredCapabilities::chrome();
    $driver = RemoteWebDriver::create($host, $desiredCapabilities);
    $driver->get("http://адресвашегосайта");

И запустим этот файл из терминала:

php test.php

-- тут мы просто открываем страницу http://адресвашегосайта - команда в терминале должна были запустить браузер открыть в нем указанную страницу, если это так, значит у нас с вами все получилось)

Источники:

Key Words for FKN + antitotal forum (CS VSU):