Шпаргалка по работе с Selenium, Webdriver и PhantomJS на PHP

Небольшой список рецептов, ссылок и советов которые будут полезны при работе с Selenium, Webdriver или PhantomJS на PHP.

Webdriver PHP API cheatsheet

Как работать с ожиданием элементов

Работа со вкладками, алертами и фреймами

Так работать с Selenium Webdriver через прокси

Запуск Selenium-хаба

java -jar selenium-server-standalone-3.5.3.jar -role hub

Запуск Selenium-ноды

java -Dwebdriver.chrome.driver=chromedriver-jar selenium-server-standalone-3.5.3.jar -role webdriver -hub http://localhost:4444/grid/register -port 5558 -browser browserName=chrome,maxInstances=8
java -jar selenium-server-standalone-3.5.3.jar -Dwebdriver.chrome.driver=chromedriver
java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.5.3.jar
java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone-3.5.3.jar -timeout 60 -browserTimeout 60

Запуск Selenium-хаба и ноды с конфиг-файлами

java -jar selenium-server-standalone.jar -role hub -hubConfig config-hub.json
java -jar selenium-server-standalone.jar -role node -nodeConfig nodeconfig.json

Пример файла config-hub.json:

{
 "browserTimeout": 60,
 "timeout": 60
}

Пример файла config-node.json:

{
 "capabilities": [
 {
 "browserName": "chrome",
 "maxInstances": 8
 }
 ],
 "maxSession": 8,
 "port": 5558,
 "hubPort": 4444,
 "hubHost": "localhost"
}

Завершить процессы chromedriver в Windows 10

taskkill /F /IM chromedriver.exe

Установка и запуск PhantomJS

Для начала скачать нужный дистрибутив для своей ОС: http://phantomjs.org/download.html
yum install fontconfig
phantomjs --webdriver=4444
./phantomjs-2.1.1-linux-i686/bin/phantomjs --webdriver 4444 --proxy=host:port --proxy-auth=user:password --proxy-type=socks5
./phantomjs-2.1.1-linux-i686/bin/phantomjs --webdriver 4444 --proxy=host:port --proxy-type=http --proxy-auth=user:password --load-images=no --debug=true --disk-cache=true

Установка шрифтов для PhantomJS

yum install urw-fonts
yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6

Запуск пошагового скрипта в Codeception

./codecept.phar run --steps

Отключение поддержки IPv6 в Linux

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6