我正在使用名为“Mod Header”的 Chrome 扩展来修改每个请求的 header 。具体来说,我传递 Dynatrace header ,以便能够捕获自动 Selenium 测试的性能指标。为此,我想在请求 header 中传递 dynatrace header 。为此,我使用 Chrome 扩展程序。我成功地使用 Selenium 启动的浏览器启动了“Mod Header”扩展。发布这篇文章后,我陷入了如何将参数传递给此扩展的困境,因为我想在 header 请求中传递测试用例名称。
以下是我要传递的 header :
dynatrace:VU=1;SN=脚本名称;TE=测试名称;ID=1;NA=TestLoad
有人可以帮我解决这个问题吗?
最佳答案
Chrome 将扩展程序的设置存储在本地存储中。 因此,自定义扩展的一种方法是首先设置其上下文,然后使用一段 Javascript 编辑本地存储。
以下是向 ModHeader 添加两个 header (token1 和 token2)的示例:
// add the ModHeader extension
var options = new ChromeOptions();
options.AddExtension(@"C:\Downloads\ModHeader_v2.0.9.crx");
// launch the browser
var driver = new ChromeDriver(options);
// set the context on the extension so the localStorage can be accessed
driver.Navigate().GoToUrl("chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/icon.png");
// setup ModHeader with two headers (token1 and token2)
driver.ExecuteScript(@"
localStorage.setItem('profiles', JSON.stringify([{
title: 'Selenium', hideComment: true, appendMode: '',
headers: [
{enabled: true, name: 'token1', value: '01234', comment: ''},
{enabled: true, name: 'token2', value: '56789', comment: ''}
],
respHeaders: [],
filters: []
}]));");
// visit a page
driver.Navigate().GoToUrl("http://stackoverflow.com/");
关于c# - 如何通过 Selenium Script C# 将参数传递给 chrome 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36389649/