如何在 selenium-webdriver 中为 phantomjs 驱动程序设置一个用户代理?

Posted

技术标签:

【中文标题】如何在 selenium-webdriver 中为 phantomjs 驱动程序设置一个用户代理?【英文标题】:How does one set useragent for phantomjs driver in selenium-webdriver? 【发布时间】:2013-01-10 06:01:06 【问题描述】:

这甚至可能吗?我目前有:

 require 'selenium-webdriver'

 phantomjs_useragent = "phantomjs.page.settings.userAgent" => "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (Khtml, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"
 driver = Selenium::WebDriver.for :phantomjs
 driver.capabilities.merge!(phantomjs_useragent)
 driver.navigate.to "http://whatsmyuseragent.com/"
 puts driver.first(:tag_name => 'body').text

这让我明白了,这不是我放入的用户代理:

您的用户代理:Mozilla/5.0(Macintosh;Intel Mac OS X)AppleWebKit/534.34(KHTML,如 Gecko)PhantomJS/1.8.1 Safari/534.34

【问题讨论】:

似乎不可能。请求在code.google.com/p/selenium/issues/detail?id=5078 【参考方案1】:

根据this suggestion:

capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs("phantomjs.page.settings.userAgent" => "Custom Agent/1.0")
Selenium::WebDriver.for :phantomjs, :desired_capabilities => capabilities

为 selenium-webdriver-2.31 及更高版本合并

【讨论】:

以上是关于如何在 selenium-webdriver 中为 phantomjs 驱动程序设置一个用户代理?的主要内容,如果未能解决你的问题,请参考以下文章

当目标元素和目标元素在不同的帧中时,如何使用 selenium-webdriver 执行拖放?

如何理解 selenium-WebDriver

Selenium-WebDriver自学Selenium-IDE验证点

轻松自动化---selenium-webdriver(python)

轻松自动化---selenium-webdriver(python)

selenium-webdriver 简单教程