[{"data":1,"prerenderedAt":240},["ShallowReactive",2],{"project-24577642":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":38,"post_text":40,"what":41,"said":70,"maker_in_thread":141,"shape":148,"grid":153,"attempts":205,"same_week":206,"maker_shows":142,"maker_hidden":233,"reader_version":234,"card":235},"24577642","Headless Recorder","title","Show HN: Headless Recorder","https:\u002F\u002Fgithub.com\u002Fcheckly\u002Fheadless-recorder","github.com","tnolet",1600948049,2020,224,23,226,3028,8,"notable","dev_tools","browser test recorder","browser_extension",[23,24,25,26],"puppeteer","playwright","browser automation","test recorder","curious",0.1,{"positive":30,"neutral":17,"mixed":31,"critical":32},3,0,1,12,{"idea":35,"design":36,"performance":37},{"positive":30,"critical":32},{"positive":31,"critical":31},{"positive":31,"critical":31},[31,31,39,31,31,31,30,30,31,30,31,31,31,31,31,30,30,30,39,30,39,32,30],5,null,{"problem":42,"audience":40,"pricing":40,"motivation":40,"time_to_build":40,"stack":54,"openness":67,"stage":68,"team_size":69},{"value":43,"source":44,"evidence":45},"Generating browser automation scripts by recording actions.","inferred",[46,50],{"id":47,"by":48,"text":49},"24581466","tyingq","It used to support just generating Puppeteer scripts. They added support to also generate Playwright scripts. Sticking with the old name would make it sound like they only…",{"id":51,"by":52,"text":53},"24582554","rgbrgb","So it looks like this keys off of class selectors. Anyone know of a solution for cases where you have dynamic selector names? Frameworks like next.js (using styled-jsx) add…",[55,60],{"value":56,"source":57,"evidence":58},"Puppeteer","commenter",[59],{"id":47,"by":48,"text":49},{"value":61,"source":62,"evidence":63},"Playwright","maker",[64],{"id":65,"by":10,"text":66},"24577927","OP here with some background info. Headless Recorder started life as “Puppeteer Recorder” which was posted here earlier. However, we just added Playwright support and renamed the…","open_source","launched","unknown",{"praise":71,"objections":90,"requests":95,"questions":103,"alternatives":122},[72,79],{"value":73,"source":57,"evidence":74},"Well-maintained open source browser automation tool is rare",[75],{"id":76,"by":77,"text":78},"24578162","ampdepolymerase","Looks amazing, it is generally very difficult to find well-maintained, open source web scraping\u002Frobot process automation tools. Thank you for building this and congratulations on…",{"value":80,"source":57,"evidence":81},"Useful project in a crowded space",[82,86],{"id":83,"by":84,"text":85},"24581547","inglor","Hey, this is cool we have a similar free project at https:\u002F\u002Fwww.testim.io\u002Fplaywright-recorder\u002F - good job! Happy to see players in this space.",{"id":87,"by":88,"text":89},"24578939","darepublic","Had a similar idea to this glad I can just use what you have created instead",[91],{"value":92,"source":57,"evidence":93},"Recorder relies on CSS class selectors that break with dynamic class names",[94],{"id":51,"by":52,"text":53},[96],{"value":97,"source":57,"evidence":98},"Firefox support",[99],{"id":100,"by":101,"text":102},"24579660","amelius","Wait, there's still work to do: a Firefox version.",[104,115],{"value":105,"source":57,"evidence":106},"Can scripts use existing logins and cookies?",[107,111],{"id":108,"by":109,"text":110},"24585863","throwawaysea","I’m not familiar with puppeteer. Does this tool let you script a browser with all your logins and cookies intact (to access content behind a login)?",{"id":112,"by":113,"text":114},"24585979","monkeycantype","Yes it lets you script chrome, usually headless, but not necessarily. I don't know whether it can use existing cookies in an open browser, but I'd assume so. I use it with…",{"value":116,"source":57,"evidence":117},"Why rename from Puppeteer Recorder?",[118],{"id":119,"by":120,"text":121},"24579879","Raphmedia","I'd be curious as to why change from an easily remembered and branded name to a generic one? Edit: not bashing, genuinely curious",[123,127,134],{"value":124,"source":57,"evidence":125},"Testim Playwright recorder",[126],{"id":83,"by":84,"text":85},{"value":128,"source":57,"evidence":129},"Taiko",[130],{"id":131,"by":132,"text":133},"24586526","thesandlord","We use https:\u002F\u002Ftaiko.dev\u002F to do E2E testing, and it's basically that. It's very far from perfect but dramatically cuts down needing to use selectors or IDs",{"value":135,"source":57,"evidence":136},"SikuliX",[137],{"id":138,"by":139,"text":140},"24582787","arthurfm","SikuliX [1] perhaps? It's an image-based automation tool. [1] https:\u002F\u002Fgithub.com\u002FRaiMan\u002FSikuliX1",{"comments":142,"answered":31,"key":143},2,[144,145],{"id":65,"text":66},{"id":146,"text":147},"24587830","This is correct. We want to do more than just Puppeteer, so it made sense.",{"commenters":149,"max_depth":150,"maker_replies":142,"first_comment_mins":151,"lifespan_hours":152},19,4,42,21,[154,156,158,160,164,167,169,171,172,173,175,179,181,184,186,187,191,192,194,195,196,198,202],[83,31,31,155,84,31],"commenter\u002Fpositive\u002Fnone",[65,32,31,157,10,32],"maker\u002Fneutral\u002Fidea",[76,32,39,159,77,31],"project\u002Fpositive\u002Fidea",[161,32,31,162,163,31],"24578223","other\u002Fneutral\u002Fperformance","fareesh",[165,32,31,162,166,31],"24579044","withinboredom",[168,32,31,162,113,31],"24586027",[119,32,30,170,120,31],"project\u002Fneutral\u002Fdesign",[47,32,30,170,48,31],[146,32,31,157,10,32],[51,142,30,174,52,31],"project\u002Fneutral\u002Fperformance",[176,142,31,177,178,31],"24582621","other\u002Fneutral\u002Fidea","echelon",[180,142,31,177,52,31],"24582682",[182,142,31,177,183,31],"24582766","alufers",[131,142,31,185,132,31],"other\u002Fneutral\u002Fnone",[138,142,31,185,139,31],[188,142,30,189,190,31],"24583378","project\u002Fneutral\u002Fidea","tfsh",[108,30,30,189,109,31],[112,30,30,193,113,31],"project\u002Fneutral\u002Fnone",[87,150,39,159,88,31],[100,150,30,189,101,31],[197,150,39,159,88,31],"24579981",[199,150,32,200,201,31],"24584783","project\u002Fcritical\u002Fidea","jjeaff",[203,150,30,189,204,31],"24585691","tardismechanic",[],[207,212,216,221,225,229],{"id":208,"name":209,"points":210,"category":211},"24615185","ts-sql",426,"languages",{"id":213,"name":214,"points":215,"category":19},"24604291","DevUtils.app",241,{"id":217,"name":218,"points":219,"category":220},"24610658","Keyboard Simulator",210,"creative",{"id":222,"name":223,"points":224,"category":211},"24637797","Ruby One-Liners Cookbook",191,{"id":226,"name":227,"points":228,"category":220},"24588523","modfy.video",129,{"id":230,"name":231,"points":228,"category":232},"24621479","Motion","productivity",false,"v2",{"id":236,"name":5,"line":5,"ai":233,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":28,"top":17,"kw":237,"maker":10,"domain":9,"tier":18,"attempts":31,"strip":238,"url":8,"mix":239,"praise":73,"objection":92,"sub":20},24577642,[23,24,25,26],"00500033030000033353513",[30,17,31,32],1794036596358]