自行擷取瀏覽器可能是一項繁瑣且耗時的任務。然而,Karma 可以為您自動執行此操作。只需將您想要擷取的瀏覽器新增到 設定檔 中即可。
browsers: ['Chrome']
然後,Karma 將會負責自動擷取這些瀏覽器,並在工作結束後將其關閉。
以下是如何將 Firefox 新增到您的測試套件的範例
# Install the launcher first with npm:
$ npm install karma-firefox-launcher --save-dev
然後,在您的設定檔中,將瀏覽器名稱新增到 browsers
陣列中。
module.exports = function(config) {
config.set({
browsers : ['Chrome', 'Firefox']
});
};
另外,請記住,browsers
設定預設為空。
當然,您也可以編寫 自訂插件!
您也可以透過開啟 http://<主機名稱>:<端口>/
來擷取瀏覽器,其中 <主機名稱>
是執行 Karma 伺服器的機器 IP 位址或主機名稱,而 <端口>
是 Karma 伺服器正在監聽的端口(預設為 9876
)。使用預設設定,只需將您的瀏覽器指向 https://127.0.0.1:9876/
即可。
這允許您在與執行 Karma 的機器位於同一網路上的任何裝置(例如平板電腦或手機)上擷取瀏覽器(或使用本地通道)。
某些啟動器也可以進行設定
sauceLabs: {
username: 'michael_jackson'
}
或者定義為已設定的啟動器
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security']
},
sauce_chrome_win: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'windows'
}
}
可以為任何自訂啟動器設定顯示名稱。如果設定,則此名稱將用於報告,而不是使用者代理程式。以下是一個程式碼片段範例,說明如何為自訂啟動器設定顯示名稱。
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security'],
displayName: 'Chrome w/o security'
}
}
如果定義如上,則瀏覽器將在日誌和報告中顯示為 Chrome 無安全性
。
每個插件都有一些預設路徑,用於在特定作業系統上尋找瀏覽器二進制檔案。您可以透過 <BROWSER>_BIN
環境變數覆蓋這些設定,或者建立 符號連結
。
# Changing the path to the Chrome binary
$ export CHROME_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the Chrome Canary binary
$ export CHROME_CANARY_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the PhantomJs binary
$ export PHANTOMJS_BIN=$HOME/local/bin/phantomjs
C:> SET IE_BIN=C:\Program Files\Internet Explorer\iexplore.exe
$Env:FIREFOX_BIN = 'c:\Program Files (x86)\Mozilla Firefox 4.0 Beta 6\firefox.exe'
// in the karma.conf.js
browsers: ['/usr/local/bin/custom-browser.sh'],
// from cli
karma start --browsers /usr/local/bin/custom-browser.sh
瀏覽器腳本需要採用一個參數,即帶有 ID 參數的 URL,用於連接到伺服器。提供的 ID 由伺服器用於追蹤擷取了哪個特定瀏覽器。