我正在使用带有貂皮的幻影:
default:
extensions:
Behat\MinkExtension\Extension:
goutte: ~
selenium2:
browser: phantomjs
wd_host: http://localhost:8643/wd/hub
capabilities:
webStorageEnabled: true
但我需要伪装成最新的镀铬物。我试过这个:
/**
* @BeforeStep
*/
public function masqueradeAsLatestChrome(StepEvent $event)
{
$this->getSession()->setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36');
}
但我得到了例外:
[Behat\Mink\Exception\UnsupportedDriverActionException]
Exception has been thrown in "beforeStep" hook, defined in FeatureContext::masqueradeAsLatestChrome()
Request header is not supported by Behat\Mink\Driver\Selenium2Driver
Chrome的版本并不重要,但Web应用程序必须认为它与最新版本的chrome进行对话。
答案 0 :(得分:3)
Selenium不提供此功能,因为它不是a 用户可以做到。它建议你使用代理注入额外的 标题为浏览器生成的请求。
https://code.google.com/p/selenium/issues/detail?id=2047#c1
可悲的是......然而,PhantomJS确实提供了interface for setting the headers。最好的方法是使用它的REST API向它发送一个直接命令。还有一个很酷的PHP wrap library可以让它变得容易200倍。
答案 1 :(得分:3)
你应该使用由JuanFranciscoCalderónZumba制作的新Behat / Mink驱动程序 https://github.com/jcalderonzumba
以下是指向驱动程序https://github.com/jcalderonzumba/MinkPhantomJSDriver
的直接链接此驱动程序允许您指定所需的请求标头 (它适用于Behat 3.0,但我认为它至少需要PHP 5.4)
答案 2 :(得分:0)
您可以通过
在selenium2driver中传递其他设置extra_capabilities:
所以在你的情况下:
default:
extensions:
Behat\MinkExtension\Extension:
goutte: ~
selenium2:
browser: phantomjs
wd_host: http://localhost:8643/wd/hub
capabilities:
webStorageEnabled: true
extra_capabilities:
phantomjs.page.settings.userAgent: "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36"
答案 3 :(得分:0)
对于https://github.com/facebook/php-webdriver,您可以使用此案例:
$capabilities = [
WebDriverCapabilityType::BROWSER_NAME => 'phantomjs',
WebDriverCapabilityType::PLATFORM => 'ANY',
WebDriverCapabilityType::ACCEPT_SSL_CERTS => false,
WebDriverCapabilityType::JAVASCRIPT_ENABLED => true,
'phantomjs.page.settings.userAgent' => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246",
];