<?php declare(strict_types=1);
namespace Tests;
use Facebook\WebDriver\Chrome\ChromeDriver;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\WebDriverKeys;
use PHPUnit\Framework\TestCase;
/*
Composer file for this.
{
"require": {
"phpunit/phpunit": "^8.0",
"facebook/webdriver": "^1.6"
}
}
*/
final class SeleniumTest extends TestCase
{
/** @var \Facebook\WebDriver\WebDriver */
private static $driver;
public static function setUpBeforeClass(): void
{
parent::setUpBeforeClass();
putenv("webdriver.chrome.driver=./drivers/chromedriver");
$options = new ChromeOptions();
$options->addArguments([
'--no-sandbox', // Benodigd voor WSL, anders start chrome / chromium niet op.
]);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
self::$driver = ChromeDriver::start($capabilities);
}
public function testSimpleExample(): void
{
self::$driver->get('http://www.google.com');
$this->assertEquals(self::$driver->getTitle(), 'Google');
}
public function testInputField(): void
{
$element = self::$driver->findElement(WebDriverBy::cssSelector('input[type=text]'));
$element->sendKeys('This is a PHP test' . WebDriverKeys::RETURN_KEY);
$this->assertEquals(self::$driver->getTitle(), 'This is a PHP test - Google zoeken');
}
public static function tearDownAfterClass(): void
{
parent::tearDownAfterClass();
self::$driver->close();
}
}
Comments