3

我正在使用 phantomjsdriver 1.8.1 for .net (C#) http://www.nuget.org/packages/phantomjs.exe/并且想知道如何在加载 web 内容之前添加用户代理 firefox

4

2 回答 2

14

尽管 Cyber​​max 的答案有些正确,但就您实际使用的 C# 而言,它并不正确。要PhantomJSDriver在 C# 中指定用户代理,您需要将其作为“附加功能”提供:

var options = new PhantomJSOptions();
options.AddAdditionalCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");

这些选项应该传递到用于创建驱动程序的构造函数中:

var driver = new PhantomJSDriver(options);

要验证此设置是否正确,您可以检查告诉您浏览器的用户代理的网站,例如WhatIsMyUserAgent.com或仔细查看 PhantomJS 控制台窗口,那里会有一个“useragent”值,并且您应该看到它已设置为您在上面指定的内容。

于 2013-10-28T09:33:24.080 回答
0

在您的脚本中,您必须在第一次调用 page.open 之前定义属性page.settings.userAgent

var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0'; //firefox 25
page.open('http://stackoverflow.com/', function (status) {
  // do something
});

注意:PhantomJS 的最新版本是 1.9.2。另一个包在这里可用。

于 2013-10-28T07:30:23.390 回答