setCapability()
setCapability()
方法通过DesiredCapabilities()的实例为WebDriver实例配置功能,如下所示:
public function testShouldProvideAccessToCapabilitiesUsingSettersAndGetters()
{
$capabilities = new DesiredCapabilities();
// generic capability setter
$capabilities->setCapability('custom', 1337);
// specific setters
$capabilities->setBrowserName(WebDriverBrowserType::CHROME);
$capabilities->setPlatform(WebDriverPlatform::LINUX);
$capabilities->setVersion(333);
$this->assertSame(1337, $capabilities->getCapability('custom'));
$this->assertSame(WebDriverBrowserType::CHROME, $capabilities->getBrowserName());
$this->assertSame(WebDriverPlatform::LINUX, $capabilities->getPlatform());
$this->assertSame(333, $capabilities->getVersion());
}
--no-sandbox
-no-sandbox
参数可以通过实例添加ChromeOptions()
,进一步可以添加到DesiredCapabilities()的实例,如下所示:
$options = new ChromeOptions();
$options->addArguments(array('--no-sandbox'));
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
启用直通
enablePassThrough
在Selenium Client v3.5.0中首次引入了模式。enablePassThrough允许从测试的 RemoteWebDriver 通过 Grid Hub 到 Grid 节点,再到 DriverService,然后到浏览器的连接,以使用相同的 WebDriver 协议(Json Wire 协议或 W3C 协议)端到端,无需翻译.
可以通过使用参数启动独立服务器或网格节点来禁用enablePassThrough模式-enablePassThrough false
随着Selenium Client v3.9.0的发布和可用性,所有HTTP 通信都切换到OkHttp。尽管您仍然可以通过将webdriver.http.factory
系统属性设置为apache
.
同时放弃了对服务器直通模式的支持。
在这里你可以找到关于enablePassThrough not available for selenium server 3.9.1的详细讨论