Sri*_*ini 3 c# selenium selenium-webdriver
我的C#代码看起来像是用于创建chrome web驱动程序,我想将自定义HTTP标头添加到我的所有http请求中.
例如:用户代理:Android
var service = ChromeDriverService.CreateDefaultService(@"c:\Chrome\");
var option = new ChromeOptions();
_driver = new ChromeDriver(service, option);
Run Code Online (Sandbox Code Playgroud)
我们有firefox的方式,如链接所示,但对于chrome它不起作用. https://eveningsamurai.wordpress.com/2013/11/21/changing-http-headers-for-a-selenium-webdriver-request/
任何帮助赞赏
我正在使用ModHeaders的方法.以前你应该使用这个插件下载mod头插件.然后您可以添加它,从源代码中仔细引用它.
var options = new ChromeOptions();
options.AddExtension("WebDrivers/modHeader_2_1_1.crx");
var driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)
然后我才发现这种黑客访问这个插件
// set the context to access extension local storage
Configuration.driver.Navigate().GoToUrl("chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/icon.png");
Configuration.driver.ExecuteScript(
"localStorage.setItem('profiles', JSON.stringify([{ " +
" title: 'Selenium', hideComment: true, appendMode: '', " +
" headers: [ " +
" {enabled: true, name: 'MY_HEADER', value: 'MY_VALUE', comment: ''} " +
" ], " +
" respHeaders: [], " +
" filters: [] " +
"}])); ");
Run Code Online (Sandbox Code Playgroud)
最后,您可以导航到某个位置并检查标头是否已加载
Configuration.driver.Navigate().GoToUrl("http://example.com/");
Run Code Online (Sandbox Code Playgroud)
处理这种情况的一种方法是使用 FiddlerCore 代理,捕获所有请求并修改标头作为请求的一部分。 https://www.nuget.org/packages/FiddlerCore/
关于 fiddler 核心的好博客 http://weblog.west-wind.com/posts/2014/Jul/29/Using-FiddlerCore-to-capture-HTTP-Requests-with-NET
public static void Start()
{
FiddlerApplication.RequestHeadersAvailable += FiddlerApplication_RequestHeadersAvailable;
FiddlerApplication.Startup(8888, true, true, true);
}
static void FiddlerApplication_RequestHeadersAvailable(Session oSession)
{
oSession.RequestHeaders.Add("My_Custom_Header", "XXXXXXXXXXXXXXXX");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |