如何在 PHP 中运行 Selenium headless?

我们希望在构建脚本中运行 Selenium 测试以及其他单元测试,但考虑到构建是在 Jenkins 上运行的,而 Jenkins 作为服务运行,因此测试需要无头运行。我们的 Selenium 测试是用 PHP 编写的,到目前为止我所看到的一切似乎都适用于 JavaScript 或 Python。

我们有什么方法可以无头运行 PHP Selenium 测试(最好使用与不运行无头时相同的驱动程序,以便我们可以检测特定浏览器的问题)?


慕码人8056858
浏览 160回答 2
2回答

交互式爱情

这在 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);有关更多 Chrome 示例,请参阅 php-webdriver wiki 文章。启动无头 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);

慕婉清6462132

在 php-webdriver 文档中找到了这个:use Facebook\WebDriver\Remote\DesiredCapabilities;$desiredCapabilities = DesiredCapabilities::firefox();    .    .    .// Run headless firefox$desiredCapabilities->setCapability('moz:firefoxOptions', ['args' => ['-headless']]);$driver = RemoteWebDriver::create($host, $desiredCapabilities);
打开App,查看更多内容
随时随地看视频慕课网APP