sclass GoogleSearch {
  Browser browser;
  S query;
  new MapSO urlParams;
  
  *(Browser browser, S *query) {}
  
  L<WithURL<S>> search_uncached() {
    S url = appendParamsToURL("https://google.com/search", mapPlus(urlParams, q := query);
    print(url);
    
    temp var page = playwrightOpenPage(browser, url);
      
    L<ElementHandle> links1 = page.querySelectorAll("a[href]:has(h3)");
    
    LPairS links = map(links1, l -> pair(l.getAttribute("href"), trim(htmlDecode_dropTags(l.querySelector("h3").innerHTML()))));
    
    ret map(links, l -> WithURL(l.a, l.b));
  }
}