我使用NightWatch.js和一些UI測試以及我想用一些額外的desiredCapabilities啓動默認瀏覽器實例(即擴展名是啓用了一些特定的值)。在默認的NightWatch瀏覽器實例(特別是ModHeader擴展)中啓用和修改Chome擴展
注意:我可以執行操作,但不在默認瀏覽器實例內。
是完全清楚,在做動作手動樣子: 鏈接擴展: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 set..but啓動頁面,但不幸的是,我有兩個標籤打開,其中一個標頭被設置,另一個標籤被執行...如果你只有一個標籤並且測試被執行在設置了標題的頁面內 - Nice !!! – Raja