通过composer安装php-webdriver:
1 2 3 | apt install php7.4-cli php-curl php-zip curl -sS https: //getcomposer .org /installer | php -- install - dir = /usr/bin/ php composer.phar require php-webdriver /webdriver |
安装java环境和selenium server:
1 2 3 | apt install openjdk-14-jre wget https: //selenium-release .storage.googleapis.com /3 .141 /selenium-server-standalone-3 .141.59.jar java -jar selenium-server-standalone-3.141.59.jar |
安装firefox/chrome浏览器和相应的webdirver:
1 2 3 4 5 6 7 8 9 | apt install ./google-chrome-stable_current_amd64.deb unzip chromedriver_linux64.zip mv chromedriver /usr/bin/ apt install firefox wget https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-linux64.tar.gz tar zxf geckodriver-v0.29.0-linux64.tar.gz mv geckodriver /usr/bin/ |
启动浏览器需X环境支持,可使用XVNC或X Window
可以使用Firefox扩展Selenium IDE: PHP Formatters录制脚本。
selenium chrome使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php require_once ( 'vendor/autoload.php' ); use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver\Chrome\ChromeOptions; $options = new ChromeOptions(); $options ->addArguments( array ( '--no-sandbox' , '--headless' , '--start-maximized' , '--user-data-dir=/tmp/chrome-user-data-dir' , '--profile-directory=/tmp/chrome-profile-dir' , '--user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36' )); $caps = DesiredCapabilities::chrome(); $caps ->setCapability(ChromeOptions::CAPABILITY, $options ); $driver = RemoteWebDriver::create( $host , $caps ); //default //$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome()); //$driver->manage()->window()->maximize(); var_dump( $driver ->getTitle()); $driver ->quit(); |
selenium firefox使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php namespace Facebook\WebDriver; require 'vendor/autoload.php' ; use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Firefox\FirefoxProfile; use Facebook\WebDriver\Firefox\FirefoxDriver; $profile = new FirefoxProfile(); $profile ->setPreference( "general.useragent.override" , "Mozilla/5.0" ); //$profile->addExtension('./vimperator-3.8.2-fx.xpi'); $caps = DesiredCapabilities::firefox(); $caps ->setCapability(FirefoxDriver::PROFILE, $profile ); $caps ->setCapability( 'moz:firefoxOptions' , [ 'args' => [ '-headless' ]]); $caps ->setCapability( 'moz:firefoxOptions' , [ 'args' => [ "-profile" , "/tmp/firefox_profile" ]]); $driver = RemoteWebDriver::create( $host , $caps ); //default //$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox()); $driver ->manage()->window()->maximize(); var_dump( $driver ->getTitle()); $driver ->quit(); |
文档:
https://github.com/php-webdriver/php-webdriver/wiki
https://php-webdriver.github.io/php-webdriver/
很赞的博客