作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将 phantomjs 与 mink 一起使用:
default:
extensions:
Behat\MinkExtension\Extension:
goutte: ~
selenium2:
browser: phantomjs
wd_host: http://localhost:8643/wd/hub
capabilities:
webStorageEnabled: true
但我需要伪装成最新的 chrome。我试过这个:
/**
* @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');
}
但我得到了异常(exception):
[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 的版本并不重要,但网络应用程序必须认为它正在与最新版本的 chrome 对话。
最佳答案
Selenium does not provide this capability, as it is not something a user can do. It's recommended you use a proxy to inject additional headers to the requests generated by the browser.
https://code.google.com/p/selenium/issues/detail?id=2047#c1
遗憾的是......然而,PhantomJS 确实提供了一个 interface for setting the headers .最好的办法是使用它的 REST API 向它发送直接命令。还有一个很酷的 PHP wrap library这将使它变得容易 200 倍。
关于selenium - 水貂 + PhantomJS : How do I set the user agent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25319882/
我是一名优秀的程序员,十分优秀!