1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| const browser = await puppeteer.launch(); const page = await browser.newPage();
{ const targetPage = page; await targetPage.setViewport({"width":1135,"height":338}) } { const targetPage = page; const promises = []; promises.push(targetPage.waitForNavigation()); await targetPage.goto('https://github.com/'); await Promise.all(promises); } { const targetPage = page; const element = await waitForSelectors([["aria/Search GitHub"], ["body > div.position-relative.js-header-wrapper > header > div > div.HeaderMenu.HeaderMenu--logged-out.position-fixed.top-0.right-0.bottom-0.height-fit.position-lg-relative.d-lg-flex.flex-justify-between.flex-items-center.flex-auto > div.d-lg-flex.flex-items-center.px-3.px-lg-0.text-center.text-lg-left > div.d-lg-flex.min-width-0.mb-3.mb-lg-0 > div > div > form > label > input.form-control.input-sm.header-search-input.jump-to-field.js-jump-to-field.js-site-search-focus.js-navigation-enable.jump-to-field-active.jump-to-dropdown-visible"]], targetPage); await element.click({ offset: { x: 74.5, y: 24} }); } { const targetPage = page; const element = await waitForSelectors([["aria/Search GitHub"], ["body > div.position-relative.js-header-wrapper > header > div > div.HeaderMenu.HeaderMenu--logged-out.position-fixed.top-0.right-0.bottom-0.height-fit.position-lg-relative.d-lg-flex.flex-justify-between.flex-items-center.flex-auto > div.d-lg-flex.flex-items-center.px-3.px-lg-0.text-center.text-lg-left > div.d-lg-flex.min-width-0.mb-3.mb-lg-0 > div > div > form > label > input.form-control.input-sm.header-search-input.jump-to-field.js-jump-to-field.js-site-search-focus.js-navigation-enable.jump-to-field-active.jump-to-dropdown-visible"]], targetPage); const type = await element.evaluate(el => el.type); if (["textarea","select-one","text","url","tel","search","password","number","email"].includes(type)) { await element.type('react'); } else { await element.focus(); await element.evaluate((el, value) => { el.value = value; el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); }, "react"); } }
|