2015-11-22 70 views
2

如何在C#控制檯應用程序中使用Selenium C#PhantomJSDriver時設置http referer頭文件?如何使用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與設置用戶代理的方式非常相似。

使用PhantomJOptions來設置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) 

希望這有助於某人。

+0

太好了,謝謝,你做到了。 –