c# - 如何通过 Selenium Script C# 将参数传递给 chrome 扩展?

标签 c# selenium google-chrome-extension

我正在使用名为“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/

相关文章:

c# - 通过 Blazor Server 应用程序调用 Graph 时出现身份验证错误

linux - 使用 linux 命令行禁用 firefox 中的自动更新

selenium webdriver 中的 css 或 xpath 正则表达式

javascript - jQuery 在 Chrome 扩展中未定义?

Javascript > 运算符在扩展中不起作用

c# - DDD : what are the OOP alternatives for procedural Application Services?

C# 和 SQLServer 标准化大量 URL

java - 如何使用 XPATH 搜索包含 JAVA 中的 Selenium 测试类的跨度

google-chrome-extension - 使用 chrome devtools 扩展突出显示节点

c# - asp.net 项目中 dll 文件的最佳加密是什么?