【发布时间】:2017-11-27 06:28:31
【问题描述】:
我正在尝试覆盖用户代理字符串,但目前在互联网上找不到解决方案...
这是我的脚本:
<?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();
页面本身就这么简单:
<html>
<body>
<h1>testpage...</h1>
<?php
printf("<div id='userAgent'>%s</div> \n", $_SERVER['HTTP_USER_AGENT']);
?>
</body>
</html>
不管我已经尝试过什么,它总是说用户代理是Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36。
有人知道我可以如何覆盖它吗?
我正在使用(在 Ubuntu 上):
- facebook/webdriver @ 1.4.1
- chromedriver @ 2.30.477691
【问题讨论】:
-
看到了,但这在 php 中不起作用,或者至少我不知道要将哪些类实例化到驱动程序被实例化的地步。如果我遵循 python 中显示的语义,则在尝试使用配置文件获取驱动程序时会收到
call to private FirefoxDriver::__construct() from invalid context错误。 -
按照其他帖子的指示,您只需提供用户代理作为命令行参数。查看用于方法的 api:facebook.github.io/php-webdriver/latest/Facebook/WebDriver/…
-
怎么样?还有哪个帖子?
标签: php facebook selenium webdriver selenium-chromedriver