我正在使用 NightWatch.js 并进行一些 UI 测试,我想使用一些额外的 desiredCapabilities 启动默认浏览器实例(即启用扩展并应用一些特定值)。
注意:我可以执行这些操作,但不能在默认浏览器实例中执行。
要完全清楚,手动执行操作如下所示:
链接到扩展:https ://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj
我能够启用扩展并使用存储在 pageObject 文件中的此命令更新值:
setChromeOptions(url) {
const chromeCapabilities = webdriver.Capabilities.chrome();
// setting chrome options
const chromeOptions = {
args:
// path to local ModHeader extension
['--load-extension=/Users/raja.bellebon/AppData/Local/Google/Chrome/User Data/Default/Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/2.1.2_0/'],
};
chromeCapabilities.set('chromeOptions', chromeOptions);
const driver = new webdriver.Builder().withCapabilities(chromeCapabilities).build();
driver.get('chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/_generated_background_page.html');
// setup ModHeader extension with the header value
driver.executeScript(`
localStorage.setItem('profiles', JSON.stringify([{ /* eslint-env browser*/
title: 'Selenium',
hideComment: true,
appendMode: '',
headers: [
{ enabled: true, name: 'X-Static-Homepage', value: 'true' },
],
respHeaders: [],
filters: [],
}]))`);
driver.get(url);
return this;
}
该函数在测试开始时被调用(作为第一步或在 a 中before
)。当我执行代码时,会打开第二个浏览器窗口并在其中执行操作。同时,主(或默认)浏览器实例没有扩展名。如何修改主浏览器实例中的扩展?
在阅读了一些博客后,我发现我可能需要修改 conf.js 并在那里应用我的代码,但我无法获取/修改当前驱动程序。
我被一个巨大的头痛困住了......任何帮助将不胜感激,谢谢!