Chrome DevTools Protokolü: Page.javascriptDialogOpening olayı aboneliğinden nasıl çıkılır
Sep 08 2020
javascriptDialogOpeningEtkinliği dinlemek için Chrome DevTools Protokol API işlevlerini kullanıyorum . Kod aşağıdadır.
async navigate(url: URL, target: any) {
const { Page } = target.connection;
// Enable the required protocol features
await Page.enable();
// Add a listener and handler for JavaScript dialogs
Page.javascriptDialogOpening(async(event: Protocol.Page.JavascriptDialogOpeningEvent) => {
// Respond with a confirmation to all dialogs
const dialogResponse: Protocol.Page.HandleJavaScriptDialogRequest = {
'accept': true
};
Page.handleJavaScriptDialog(dialogResponse);
});
}
Bir hata aldım: MaxListenersExceededWarning: Olası EventEmitter bellek sızıntısı algılandı. 11 Page.javascriptDialogOpeningdinleyici eklendi. Sınırı artırmak için emitter.setMaxListeners () kullanın
Yanıtlar
1 NicholasDiPiazza Sep 10 2020 at 13:35
Koyarak javascriptDialogOpeningolay kayıt navigateişleyicisi, sen tekrar tekrar işleyicisi ekliyoruz. Çünkü bir gezinme olayı her gerçekleştiğinde, bu olay işleyicisini yeniden ekliyorsunuz.
Burada gerçekten istediğiniz şey, javascriptDialogOpeningetkinlik kaydını başlatma kodunuza koymaktır . Bunu yaparsanız, yalnızca bir kez kaydedilecek ve artık bu sorunu yaşamayacaksınız.
CDP({'host': host, 'port': port}, (client) => {
// ...
Page.javascriptDialogOpening((params) => {
Page.handleJavaScriptDialog({'accept': true});
});
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'