【发布时间】:2015-02-05 21:51:26
【问题描述】:
我一直在寻找一种方法来更改我的 PhantomJSDriver 中的用户代理,但到目前为止还没有找到。 Selenium 文档中有关于 Firefox 驱动程序的简介,但我使用的是 PhantomJS。有什么想法吗?
【问题讨论】:
标签: java selenium-webdriver phantomjs user-agent
我一直在寻找一种方法来更改我的 PhantomJSDriver 中的用户代理,但到目前为止还没有找到。 Selenium 文档中有关于 Firefox 驱动程序的简介,但我使用的是 PhantomJS。有什么想法吗?
【问题讨论】:
标签: java selenium-webdriver phantomjs user-agent
用户代理不能直接在驱动上设置。具体来说,驱动程序会查找"phantomjs.page.settings.userAgent" 属性,因此必须在调用驱动程序之前对其进行设置。
下面是一个最接近 PhantomJS 1.x 功能的用户代理示例:
String userAgent = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1";
System.setProperty("phantomjs.page.settings.userAgent", userAgent);
【讨论】:
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX + "userAgent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36");
new PhantomJSDriver(dc);
【讨论】:
对于最近的PhantomJSDriver,更好的方法是通过功能设置用户代理:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0");
WebDriver driver = new PhantomJSDriver(caps);
通过System.setProperty() 设置属性似乎不再有效。
【讨论】: