Facebook WebDriver:设置用户代理(PHP)

Facebook WebDriver:设置用户代理(PHP),php,facebook,selenium,webdriver,selenium-chromedriver,Php,Facebook,Selenium,Webdriver,Selenium Chromedriver,我正在尝试覆盖用户代理字符串,但到目前为止在internet上找不到解决方案 这是我的剧本: <?php namespace Facebook\WebDriver; use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Remote\RemoteWebDriver; require_once('vendor/autoload.php'); $host = 'http://lo

我正在尝试覆盖用户代理字符串,但到目前为止在internet上找不到解决方案

这是我的剧本:

<?php
namespace Facebook\WebDriver;

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;

require_once('vendor/autoload.php');

$host         = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$capabilities->setPlatform(WebDriverPlatform::WINDOWS);
$capabilities->setCapability('userAgent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$capabilities->setCapability('user-agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$driver       = RemoteWebDriver::create($host, $capabilities, 5000);

$driver->get('http://localhost/browser-emu/testpage.php?bot=1234');

// wait until the page is loaded
$driver->wait()->until(
    WebDriverExpectedCondition::titleContains('register')
);

echo "User agent: " . $driver->findElement(WebDriverBy::cssSelector('#userAgent'))->getText();

$driver->quit();

不管我已经尝试了什么,它总是说用户代理是
Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/59.0.3071.109 Safari/537.36

有人知道我怎么能推翻它吗

我正在使用(在Ubuntu上):

  • facebook/webdriver@1.4.1
  • chromedriver@2.30.477691

我在facebook/web驱动程序(firefox)中找到了解决方案:

对于铬:

$options = new ChromeOptions();
$options->addArguments(array(
    '--user-agent=' . $userAgent
));

$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);

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

我在facebook/web驱动程序(firefox)中找到了解决方案:

对于铬:

$options = new ChromeOptions();
$options->addArguments(array(
    '--user-agent=' . $userAgent
));

$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);

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

可能与saw重复,但这在php中不起作用,或者至少我不知道在实例化驱动程序时要实例化哪些类。如果我遵循python中所示的语义,则在尝试使用配置文件获取驱动程序时,会从无效上下文中获得对私有FirefoxDriver::u construct()的
调用。按照另一篇文章的指示,您只需将用户代理作为命令行参数提供即可。请看一看api,了解方法:How?还有哪篇文章?可能是saw的重复,但这在php中不起作用,或者至少我不知道要实例化哪些类,直到驱动程序被实例化为止。如果我遵循python中所示的语义,则在尝试使用配置文件获取驱动程序时,会从无效上下文中获得对私有FirefoxDriver::u construct()的
调用。按照另一篇文章的指示,您只需将用户代理作为命令行参数提供即可。请看一看api,了解方法:How?还有哪个职位?
$options = new ChromeOptions();
$options->addArguments(array(
    '--user-agent=' . $userAgent
));

$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);

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