Puppeteer: page.waitForSelector baidu.com рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдЧре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: puppeteer/puppeteer

рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ baidu.com рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ:

const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://baidu.com');
  await page.waitForSelector('div');
  browser.close();
})();

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ Baidu MutationObserver рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ waitForSelector рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреБрдЫ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ, рдЬреИрд╕реЗ: "рдХрдардкреБрддрд▓реА рдХреЗ рддрд░реАрдХреЗ рдЯреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдкреГрд╖реНрда рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ"

рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛, рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

await this.page.evaluate( () => {
    if ( ! window.Node ) {
        window.Node = {};
    }
    if ( ! Node.ELEMENT_NODE ) {
        Node.ELEMENT_NODE = 1;
    }
} );

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреИрд╕рд╛ рдХрд┐ #1668 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдкреГрд╖реНрда window.Node рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ page.click(selector) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдХреБрдЫ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ, рдЬреИрд╕реЗ: "рдХрдардкреБрддрд▓реА рдХреЗ рддрд░реАрдХреЗ рдЯреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдкреГрд╖реНрда рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ"

рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛, рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

await this.page.evaluate( () => {
    if ( ! window.Node ) {
        window.Node = {};
    }
    if ( ! Node.ELEMENT_NODE ) {
        Node.ELEMENT_NODE = 1;
    }
} );

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

historylife picture historylife  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ryanvincent29 picture ryanvincent29  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

barnash picture barnash  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

octasimo picture octasimo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sradu picture sradu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ