Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / remote / test / puppeteer / examples / search.js
blob7c2a081808eafd057602ab001b0e24b4299a842e
1 /**
2 * @license
3 * Copyright 2017 Google Inc.
4 * SPDX-License-Identifier: Apache-2.0
5 */
7 /**
8 * @fileoverview Search developers.google.com/web for articles tagged
9 * "Headless Chrome" and scrape results from the results page.
12 'use strict';
14 const puppeteer = require('puppeteer');
16 (async () => {
17 const browser = await puppeteer.launch();
18 const page = await browser.newPage();
20 await page.goto('https://developers.google.com/web/');
22 // Type into search box.
23 await page.type('.devsite-search-field', 'Headless Chrome');
25 // Wait for suggest overlay to appear and click "show all results".
26 const allResultsSelector = '.devsite-suggest-all-results';
27 await page.waitForSelector(allResultsSelector);
28 await page.click(allResultsSelector);
30 // Wait for the results page to load and display the results.
31 const resultsSelector = '.gsc-table-result a.gs-title[href]';
32 await page.waitForSelector(resultsSelector);
34 // Extract the results from the page.
35 const links = await page.evaluate(resultsSelector => {
36 const anchors = Array.from(document.querySelectorAll(resultsSelector));
37 return anchors.map(anchor => {
38 const title = anchor.textContent.split('|')[0].trim();
39 return `${title} - ${anchor.href}`;
40 });
41 }, resultsSelector);
42 console.log(links.join('\n'));
44 await browser.close();
45 })();