Node.js Electron Puppeteer proxy cors hatası (css ve js dosyaları yüklenmiyor)
Merhabalari nodejs ile puppeteer kullanarak bir form doldurma uygulaması yazdım. Kodum normalde çalışmakta fakat electron a taşıdığımda proxy kullanıyosam sayfada css/js dosyaları yüklenmiyor. Araştırmalarım CORS hatası olduğunu söylüyor. Hem electron hemde puppeteer tarafında web security ayarlarını kapatmama rağmen sorunu çözemedim. Kodumu aşşağıya bırakıyorum.
const puppeteer = require('puppeteer-extra')
const request = require('request');
const RecaptchaPlugin = require('puppeteer-extra-plugin-recaptcha')
const useProxy = require('puppeteer-page-proxy');
var settings = {
country: "Turkey",
city: "Istanbul",
namesurname: "name surname",
username: "testusername",
metin: "bla bla bla",
};
const sendForm = async (numOfPages, formProxy) => {
const browser = await puppeteer.launch({
headless: false,
args: [
'--disable-web-security',
'--disable-features=IsolateOrigins',
'--disable-site-isolation-trials'
]
});
for (let i = 1; i <= numOfPages; i++) {
console.log(i + ". işlem başladı");
try {
const page = await browser.newPage();
await useProxy(page, 'http://192.168.1.1:8080'); //random proxy
const data = await useProxy.lookup(page);
if (!data) throw console.error('No data');
await page.goto('https:help.instagram.com/contact/1784471218363829', { waitUntil: 'networkidle2' });
// click actions
console.log(i + ". İşlem Tamamlandı")
} catch (error) {
console.error('Beklenmedik bir hata oluştu tekrar deneniyor.');
console.error(error);
i--;
continue;
}
await new Promise(resolve => setTimeout(resolve, 1000));
}
await browser.close();
console.log("Tüm işlemler tamamlandı");
};
Bu kod normalde çalışmakta. Electrona taşıdığımda ise durum farklı.
Electron mainim ;
function createWindow() {
win = new BrowserWindow({
autoHideMenuBar: true,
frame: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
webSecurity: false,
}
});
win.loadURL(`file://${__dirname}/src/login.html`);
initIPCMain();
// Open the DevTools.
win.webContents.openDevTools();
win.on("closed", () => {
win = null;
});
win.webContents.on('did-finish-load', () => {
win.webContents.insertCSS('body::-webkit-scrollbar { display: none; }')
console.log('Tüm kaynaklar yüklendi.');
});
};
İnternette bulduğum ve denediğim çalışmayan çözümler.
Electron tarafı için
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
webSecurity: false, // cors error fix
}
Puppeteer tarafı
args: [
'--disable-web-security',
'--disable-features=IsolateOrigins',
'--disable-site-isolation-trials'
]
Proxy kullanmadığım zaman sayfa doğru yüklenmekte. Ama ne zaman proxy kullansam sayfada css/js dosyaları yüklenmiyor. Fakat bu durum dediğim gibi sadece electron tarafında geçerli.

Olması gereken

Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!