1
我想用NightmareJS加載一個頁面,點擊一個按鈕,然後拍一個截圖來測試。按鈕上的點擊處理程序請求地理位置。這是我測試的一部分。如果用戶授予地理位置權限,我希望頁面以某種方式顯示,如果他們拒絕,我希望以其他方式顯示。用NightmareJS模擬內置對象
問題是,夢魘不公開一種方法讓我攔截權限提示接受或拒絕它。經過一番研究後,我瞭解到,Electron只是硬編碼這個許可'授予',所以甚至可能沒有辦法將其設置爲拒絕。
我想要做的是用一種模擬方式替換Electron的navigator.geolocation
對象,以某種方式響應地理定位請求。
new Nightmare().goto('https://example.com')
.evaluate(function() {
navigator.geolocation = {
getCurrentPosition(cb) {
cb({coords: latitude: 42, longitude: -42});
}
}
})
.click('#locateMe')
.screenshot()
.end()
.then(diffScreenshot)
但是,當我嘗試這似乎是navigator.geolocation對象不會改變。有沒有其他方法可以實現這個目標?
使用window.navigator似乎工作!謝謝! – arkanciscan