有什么方法可以使用 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);
我一直在寻找一种方法来更改我的 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);