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



我正在使用一个名为"Mod Header"的Chrome扩展来修改每个请求的Header。具体地说,我正在传递Dynatrace Header,以便能够捕获我的自动化Selenium测试的性能度量。为此,我想在请求标头中传递dynatrace标头。为此,我使用Chrome扩展。我成功地用Selenium启动的浏览器启动了"Mod Header"扩展。在这篇文章中,我被困在了如何将参数传递给这个Extesnion上,因为我想在头请求中传递测试用例名称。以下是我要传递的标题:
dynatrace:VU=1;SN=脚本名称;TE=测试名称;ID=1;NA=测试负载

有人能帮我解决这个问题吗?

Chrome将扩展的设置存储在本地存储中。因此,自定义扩展的一种方法是首先在其上设置上下文,然后用一段Javascript编辑本地存储。

下面是一个向ModHeader:添加两个标头(token1和token2)的示例

// add the ModHeader extension
var options = new ChromeOptions();
options.AddExtension(@"C:DownloadsModHeader_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/");

一种方法是在扩展url中使用搜索参数。

如果你通过调用它的一些页面来调用扩展,你也可以添加之类的参数

chrome-extension://efjkpoicghgloioskoepnjiniemnhcnl/index.html?param1=value1&param2=value2

最新更新