【发布时间】:2017-03-07 03:52:56
【问题描述】:
我正在使用 NightWatch.js 并进行一些 UI 测试,我想使用一些额外的所需功能启动默认浏览器实例(即启用扩展并应用一些特定值)。 p>
注意:我可以执行这些操作,但不能在默认浏览器实例中执行。
为了完全清楚,手动执行操作如下所示: 扩展链接: 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;
}
该函数在测试开始时被调用(作为第一步或在before 内)。当我执行代码时,会打开第二个浏览器窗口并在其中执行操作。同时,主(或默认)浏览器实例没有扩展名。 如何在主浏览器实例中修改扩展?
在阅读了一些博客之后,我发现我可能需要修改 conf.js 并在那里应用我的代码,但我无法获取/修改当前的驱动程序。
我头疼得厉害...任何帮助将不胜感激,谢谢!
【问题讨论】:
-
您好,谢谢您的回答!你确定它有效吗?我记得我可以使用 modHeader 集开始页面..但不幸的是,我打开了两个选项卡,一个设置了标题,另一个是执行我的测试...如果你只有一个选项卡并且执行了测试在带有标题集的页面内 - 很好!!!
标签: javascript selenium google-chrome-extension nightwatch.js mod-headers