Продолжаем ознакомление с возможностями Webdriver. Сегодня более подробно рассмотрим разворачивание нового экземпляра Chome с дополнительными настройками.
Для добавления новых опций к разворачиваемому экземпляру окна браузера используется addArguments. Существует большое количество подключаемых параметров. Сегодня же мы рассмотрим несколько из них.
Для этого создаем переменную chromeOptions, с помощью которой и будем передавать в создаваемый экземпляр окна необходимые параметры.
- $chromeOptions = new \Facebook\WebDriver\Chrome\ChromeOptions();
- $chromeOptions->addArguments(['--headless']);
- $chromeOptions->addArguments(["load-extension="/path/to/extension"]);
Что мы видим, после создания переменной опций, нам открывается возможность с помощью функции addArguments добавлять некие аргументы. Для примера я использовал следующие:
headless : Запуск в автономном режиме, т. е. без зависимостей пользовательского интерфейса или сервера отображения. По простому, наш скрипт будет выполняться без отображения окна браузера.
load-extension : Разделенный запятыми список путей к расширениям для загрузки при запуске. Используется в тех случаях если нам необходимо подключить расширения. Как было сказано в первом уроке, создаваемый экземпляр браузера будет без расширений и пользовательских данных.
Более подробно со списком возможных передаваемых параметров вы можете ознакомиться тут.
Перейдем к практическому применению. В целях демонстрации я не буду использовать параметр headless. В первом примере не будем ничего передавать в наш браузер и удостоверимся в том что никакие расширения в нем не установлены.
Код программы:
- $capabilities = DesiredCapabilities::chrome();
- $driver = RemoteWebDriver::start($capabilities);
Теперь подключим любое расширение, в моем случае это будет плагин anticaptcha-plugin_v0.62. Перейдем на ту же страницу и проверим результат.
Код программы:
- $chrome_options = new ChromeOptions();
- $chrome_options->addArguments(["load-extension=".$settings->api_anticapcha->path_to_extention.""]); //using json file to load path
- $capabilities = DesiredCapabilities::chrome();
- $capabilities->setCapability(ChromeOptions::CAPABILITY, $chrome_options);
- $driver = ChromeDriver::start($capabilities);
Как мы видим расширение появилось. Теперь мы можем пользоваться его возможностями где нам будет необходимо. Стоит отметить одну очень важную вещь, путь к расширению должен не может меняться, использовать можно как распакованный zip архив с плагином так и файл .crx (Пример подключения расширений).
Надеюсь данный урок был для вас полезным. Далее мы рассмотрим возможности эмулирование работы пользователя и взаимодействие с элементами и разметкой страницы.
Подписывайся, чтобы не пропустить следующий урок.