在C#控制台应用程序中使用Selenium C#PhantomJSDriver时,如何设置http referer标头?
我正在使用PhantomJSDriver和我无法控制的代理。
PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
service.AddArgument("--proxy=123.456.78.910:80");
service.AddArgument("--proxy-auth=myproxyuid:myproxypwd");
IWebDriver driver = new PhantomJSDriver(service);
driver.Navigate().GoToUrl("http://www.testsite.com/product/123/");
但是,正在测试的Web应用程序会对请求中的HTTP Referer值执行验证。
我可以使用哪种方法在PhantomJSDriver请求中注入HTTP Referer?
答案 0 :(得分:7)
回答我自己的问题。
我发现了如何使用C#PhantomJSDriver设置/注入/伪造HTTP Referer。
事实证明,添加自定义标题也会设置/覆盖标准标题。
设置HTTP Referer与设置用户代理的方式非常相似。
使用 PhantomJSOptions 设置HTTP Referer。
注意:我使用PhantomJSDriverService和PhantomJSOptions来创建驱动程序的实例,以便将命令行参数发送到phantomjs.exe,以便指定我的代理设置等。
这里有适合我的代码:
PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
service.AddArgument("--proxy=123.456.78.910:8181");
service.AddArgument("--load-images=false");
var options = new PhantomJSOptions();
options.AddAdditionalCapability("phantomjs.page.settings.userAgent", "myagent/blah.blah");
options.AddAdditionalCapability("phantomjs.page.customHeaders.Referer", "https://www.google.com/");
IWebDriver driver = new PhantomJSDriver(service,options)
希望这有助于某人。