有什么方法可以使用 PhantomJSDriver 在 PhantomJS 中设置用户代理吗?

Is there any way to set the user agent in PhantomJS using PhantomJSDriver?

我一直在寻找一种方法来更改我的 PhantomJSDriver 中的用户代理,但到目前为止还没有找到。 Selenium 文档中有一个关于 Firefox 驱动程序的简介,但我使用的是 PhantomJS。有什么想法吗?

不能直接在驱动程序上设置用户代理。具体来说,驱动程序会查找 "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);

对于最近的 PhantomJSDriver,更好的方法是通过功能设置用户代理:

DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0");
WebDriver driver = new PhantomJSDriver(caps);

通过 System.setProperty() 设置 属性 似乎不再有效。

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);