繁体   English   中英

如何使用Selenium C#PhantomJSDriver设置http referer标头?

[英]How to set the http referer header with Selenium C# PhantomJSDriver?

在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?

回答我自己的问题。

我发现了如何使用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)

希望这有助于某人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM