为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 PHP 中运行 Selenium headless?

如何在 PHP 中运行 Selenium headless?

PHP
慕码人8056858 2023-07-30 14:07:21
我们希望在构建脚本中运行 Selenium 测试以及其他单元测试,但考虑到构建是在 Jenkins 上运行的,而 Jenkins 作为服务运行,因此测试需要无头运行。我们的 Selenium 测试是用 PHP 编写的,到目前为止我所看到的一切似乎都适用于 JavaScript 或 Python。我们有什么方法可以无头运行 PHP Selenium 测试(最好使用与不运行无头时相同的驱动程序,以便我们可以检测特定浏览器的问题)?
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

这在 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);

查看完整回答
反对 回复 2023-07-30
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

在 php-webdriver 文档中找到了这个:


use Facebook\WebDriver\Remote\DesiredCapabilities;


$desiredCapabilities = DesiredCapabilities::firefox();

    .

    .

    .

// Run headless firefox

$desiredCapabilities->setCapability('moz:firefoxOptions', ['args' => ['-headless']]);


$driver = RemoteWebDriver::create($host, $desiredCapabilities);


查看完整回答
反对 回复 2023-07-30
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信