运行 Selenium 如何在 PHP 中无头化?
How do you run Selenium headless in PHP?
我们希望 运行 我们的 Selenium 测试以及我们构建脚本中的其他单元测试,但考虑到构建 运行 在 Jenkins 上进行,即 运行作为一项服务,测试需要 运行 无头。我们的 Selenium 测试是用 PHP 编写的,到目前为止我所看到的一切似乎都适用于 JavaScript 或 Python。
有什么方法可以让我们 运行 我们的 PHP Selenium 无头测试(最好使用与未 运行 无头时相同的驱动程序,以便我们可以检测特定浏览器的问题)?
在 php-webdriver 文档中找到:
use Facebook\WebDriver\Remote\DesiredCapabilities;
$desiredCapabilities = DesiredCapabilities::firefox();
.
.
.
// Run headless firefox
$desiredCapabilities->setCapability('moz:firefoxOptions', ['args' => ['-headless']]);
$driver = RemoteWebDriver::create($host, $desiredCapabilities);
这已在 php-webdriver 1.11.0 (2021-05-03) 中得到改进。
开始无头Chrome
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments(['--headless']);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY_W3C, $chromeOptions);
// Start the browser with $capabilities
// A) When using RemoteWebDriver::create()
$driver = RemoteWebDriver::create($serverUrl, $capabilities);
// B) When using ChromeDriver::start to start local Chromedriver
$driver = ChromeDriver::start($capabilities);
请参阅 php-webdriver wiki 文章 more Chrome examples。
启动无头 Firefox
$firefoxOptions = new FirefoxOptions();
$firefoxOptions->addArguments(['-headless']);
$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability(FirefoxOptions::CAPABILITY, $firefoxOptions);
// Start the browser with $capabilities
// A) When using RemoteWebDriver::create()
$driver = RemoteWebDriver::create($serverUrl, $capabilities);
// B) When using FirefoxDriver::start to start local Geckodriver
$driver = FirefoxDriver::start($capabilities);
请参阅 php-webdriver wiki 文章 more Firefox examples。
我们希望 运行 我们的 Selenium 测试以及我们构建脚本中的其他单元测试,但考虑到构建 运行 在 Jenkins 上进行,即 运行作为一项服务,测试需要 运行 无头。我们的 Selenium 测试是用 PHP 编写的,到目前为止我所看到的一切似乎都适用于 JavaScript 或 Python。
有什么方法可以让我们 运行 我们的 PHP Selenium 无头测试(最好使用与未 运行 无头时相同的驱动程序,以便我们可以检测特定浏览器的问题)?
在 php-webdriver 文档中找到:
use Facebook\WebDriver\Remote\DesiredCapabilities;
$desiredCapabilities = DesiredCapabilities::firefox();
.
.
.
// Run headless firefox
$desiredCapabilities->setCapability('moz:firefoxOptions', ['args' => ['-headless']]);
$driver = RemoteWebDriver::create($host, $desiredCapabilities);
这已在 php-webdriver 1.11.0 (2021-05-03) 中得到改进。
开始无头Chrome
$chromeOptions = new ChromeOptions();
$chromeOptions->addArguments(['--headless']);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY_W3C, $chromeOptions);
// Start the browser with $capabilities
// A) When using RemoteWebDriver::create()
$driver = RemoteWebDriver::create($serverUrl, $capabilities);
// B) When using ChromeDriver::start to start local Chromedriver
$driver = ChromeDriver::start($capabilities);
请参阅 php-webdriver wiki 文章 more Chrome examples。
启动无头 Firefox
$firefoxOptions = new FirefoxOptions();
$firefoxOptions->addArguments(['-headless']);
$capabilities = DesiredCapabilities::firefox();
$capabilities->setCapability(FirefoxOptions::CAPABILITY, $firefoxOptions);
// Start the browser with $capabilities
// A) When using RemoteWebDriver::create()
$driver = RemoteWebDriver::create($serverUrl, $capabilities);
// B) When using FirefoxDriver::start to start local Geckodriver
$driver = FirefoxDriver::start($capabilities);
请参阅 php-webdriver wiki 文章 more Firefox examples。