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

本文关键字:http-referer 设置 C#PhantomJSDriver 何使用 Selenium | 更新日期: 2023-09-27 18:23:44

在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

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

回答我自己的问题。

我发现了如何使用C#PhantomJSDriver设置/注入/伪造HTTP引用程序。

事实证明,添加自定义标头也会设置/覆盖标准标头。

设置HTTP Referer与设置用户代理的方式非常相似。

使用PhantomJSOptions设置HTTP引用程序。

注意:我使用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)

希望这能帮助到别人。