lionmm / laravel-ff-webdriver
Selenium Firefox web-driver interface for Laravel 5.1.* - 5.2.*
Installs: 57
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/lionmm/laravel-ff-webdriver
Requires
- php: >=7.1
- facebook/webdriver: ^1.5
- symfony/console: 2.8.*|3.0.*|3.3.*
Requires (Dev)
- phpspec/prophecy: ^1.6
- phpunit/phpunit: ^5.6
This package is not auto-updated.
Last update: 2021-02-25 14:39:07 UTC
README
Selenium Firefox web-driver adapter (for Laravel 5.2.* and standalone use)
This package uses the facebook's php-webdriver library
Collect all mostly used methods in one class and give providers and aliases for working vs it
Now can be used standalone
Laravel supporting
-
Laravel 5.3.x:
in developing -
Laravel 5.2.x:
1.0.1 -
Laravel 5.1.x:
0.1.2 -
Laravel < 5.1:
not supported
Quick start
Install
Run composer require lionmm/laravel-ff-webdriver
Laravel 5.1.x to 5.2.x
In your config/app.php add LionMM\WebDriver\WebDriverServiceProvider::class, to the end of the providers array
'providers' => array( ... LionMM\WebDriver\WebDriverServiceProvider::class, ),
Add the WebDriver facade to the end of the aliases array as well
'aliases' => array( ... 'WebDriver' => LionMM\WebDriver\Facades\WebDriver::class, ),
Usage
Selenium requirement
For using library you must install and run Selenium server
By default, library try to connect to http://localhost:4444/wd/hub
You can change that path in config/webdriver.php (see above)
Using library
Best way - using Facade by alias WebDriver::method()
Also, you can make instance of \LionMM\WebDriver\WebDriver class
<?php use LionMM\WebDriver\WebDriver; class Foo { public function Bar() { $webDriver = \App::make('webdriver'); // use \App::make for DI and 'webdriver' for singleton } }
OR
<?php use LionMM\WebDriver\WebDriver; class Foo { /** @var WebDriver */ private $webDriver; public function __construct(WebDriver $webDriver) { $this->webDriver = $webDriver; } }
Next step - you must init Driver with method initDriver($parameters, $request_time_limit)
<?php \WebDriver::initDriver(['lang' => 'en', 'no-flash' => true, 'proxy' => '220.155.15.133:8080'], 50000);
Instead, the parameter lang You can specify directly 'accept_languages' => 'ru-RU,ru,en,en-US,uk'
<?php \WebDriver::initDriver(['accept_languages' => 'ru-RU,ru,en,en-US,uk', 'no-flash' => false, 'proxy' => '220.155.15.133:8080'], 50000, 'http:hub.site:5555/wd/hub');
By default flash is enabled and accept_languages set to ru-RU,ru,en,en-US,uk
Go to url
Use method get($url) for load a new web page in the current browser window.
Operate vs page content
waitForElement($selector, $index, $timeout)checkForElement($selector)getAllElements($selector, $need, $timeout)
Frames
switchToFrame($element): Switch to the iframe by its id or name.switchToDefaultContent(): Switch to the main document if the page contains iframes. Otherwise, switch to the first frame on the page.
Service functions
quit($wait = 0): run automatically in__destruct()method. Quits driver, closing every associated window. (hope this...)deleteAllCookies(): Delete all the cookies that are currently visible.getCookies(): Get all the cookies for the current domain.addCookie($cookie): Add a specific cookie.getCurrentURL(): Get a string representing the current URL that the browser is looking atgetTitle(): Get the title of the current page.getPageSource(): Get the source of the last loaded page.takeScreenshot($pathToSave): Take a screenshot of the current page. if parameter$pathToSavenot set method return the screenshot contents in PNG formatexecuteScript($jsCode, $arguments, $async): Inject a snippet of JavaScript into the page for execution in the context of the currently selected frame. The result of evaluating the script will be returned.