[{"data":1,"prerenderedAt":457},["ShallowReactive",2],{"project-8416693":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":46,"post_text":47,"what":48,"said":82,"maker_in_thread":220,"shape":230,"grid":233,"attempts":420,"same_week":421,"maker_shows":221,"maker_hidden":449,"reader_version":450,"card":451},"8416693","Nightmare","Simple browser automation","title","Show HN: Nightmare – Simple browser automation","http:\u002F\u002Fwww.nightmarejs.org\u002F","nightmarejs.org","pkrein",1412612508,2014,429,70,20,2272,1,"legend","dev_tools","browser automation","library",[21,24,25,26,27],"phantomjs","node.js","headless browser","web scraping","mixed",-0.063,{"positive":31,"neutral":32,"mixed":18,"critical":33},10,19,14,44,{"execution":36,"docs":39,"idea":42,"design":44,"performance":45},{"positive":37,"critical":38},2,4,{"positive":40,"critical":41},0,3,{"positive":41,"critical":43},5,{"positive":18,"critical":18},{"positive":40,"critical":18},[18,41,43,41,40,18,43,43,41,41,41,18,18,41,18,43,40,41,18,41,41,43,40,41,40,41,41,43,41,41,41,18,43,18,18,41,18,40,40,40],null,{"problem":49,"audience":47,"pricing":47,"motivation":56,"time_to_build":47,"stack":62,"openness":79,"stage":80,"team_size":81},{"value":50,"source":51,"evidence":52},"Automating web page interaction and building APIs for services without them","maker",[53],{"id":54,"by":11,"text":55},"8416960","nightwatch looks awesome for testing, nightmare is for automation... building APIs for services that don't have them.",{"value":57,"source":51,"evidence":58},"Automating logo generation workflow at Segment, built to let a chat bot auto-generate vector logos",[59],{"id":60,"by":11,"text":61},"8416695","Quick example of how we use this at Segment... for each integration (https:\u002F\u002Fsegment.io\u002Fintegrations) we need to create a vector logo. This got a bit tedious after the first 50…",[63,71],{"value":64,"source":65,"evidence":66},"Node.js","commenter",[67],{"id":68,"by":69,"text":70},"8418270","resu_nimda","That is the documentation for phantomjs, which is a stand-alone process. Nightmare is a package for nodejs (that interacts with a phantomjs process), so your code runs in a node…",{"value":72,"source":51,"evidence":73},"PhantomJS",[74,75],{"id":54,"by":11,"text":55},{"id":76,"by":77,"text":78},"8421475","JoeAcchino","Nightwatch runs against Selenium, Nightmare uses Phantom.js With Selenium you have full cross browser support, while Phantom is Webkit based.","unknown","launched","company",{"praise":83,"objections":113,"requests":140,"questions":162,"alternatives":185},[84,98],{"value":85,"source":65,"evidence":86},"Simple, easy to use API",[87,90,94],{"id":88,"by":69,"text":89},"8418067","I've been wanting to programmatically get my transaction details from my bank for a while. I knew about phantomJS but never got around to trying it out. When I saw this I decided…",{"id":91,"by":92,"text":93},"8417025","thathonkey","I currently only have experience using CasperJS which also wraps-around PhantomJS. This has different goals (simpler) and therefore a simpler API, though. The use case at Segment…",{"id":95,"by":96,"text":97},"8416884","niix","Very nice!",{"value":99,"source":65,"evidence":100},"Polished, attractive website design",[101,105,109],{"id":102,"by":103,"text":104},"8419044","ryanackley","Looks like an interesting library. I have no use for it right now but maybe one day. Definitely can see why this would be useful for some people though. Their website has some…",{"id":106,"by":107,"text":108},"8417620","brickmort","Extra points for page design!",{"id":110,"by":111,"text":112},"8418079","oldboyFX","Interesting background... creepy is good.",[114,125,133],{"value":115,"source":65,"evidence":116},"PhantomJS is based on old WebKit and crashes frequently",[117,121],{"id":118,"by":119,"text":120},"8418673","ivank","PhantomJS 1.9.7 is based on an ancient version of WebKit that lacks ES5 functions like Function.prototype.bind. It also crashes pretty frequently.",{"id":122,"by":123,"text":124},"8419340","baudehlo","I can absolutely concur that it crashes frequently. I have high hopes v2 fixes this. Most of the crashes are due to WebKit bugs that have since been resolved in QT5.",{"value":126,"source":65,"evidence":127},"Examples in README and docs did not run initially; errors are unclear",[128,132],{"id":129,"by":130,"text":131},"8417559","tucosan","Even after substituting the fancy ampersands on your homepage, and requiring nightmare your example still does not run: ``` var Nightmare = require('nightmare'); new Nightmare()…",{"id":88,"by":69,"text":89},{"value":134,"source":65,"evidence":135},"Site does not explain what browser automation is",[136],{"id":137,"by":138,"text":139},"8418426","NoMoreNicksLeft","It's a polished website... and I know what javascript is, but they didn't do a good job of explaining what it is. Browser automation? Is this a test suite of some sort, something…",[141,148,155],{"value":142,"source":65,"evidence":143},"Proxy support for changing source IP",[144],{"id":145,"by":146,"text":147},"8417434","henrygrew","I'm building a bot using this, any idea of proxies i can use to change the source ip's and how i can use it with a proxy?",{"value":149,"source":65,"evidence":150},"Way to query the DOM and check results",[151],{"id":152,"by":153,"text":154},"8419047","fimdomeio","so... how does one query the DOM? It looks it has been left out of the api. Does this mean that Nightmare is only able to do brainless automation without checking browser results?",{"value":156,"source":65,"evidence":157},"Pass PhantomJS command line options such as ssl-protocol",[158],{"id":159,"by":160,"text":161},"8420368","tuxone","Fantastic easy tool! There is a way to pass phantomjs command line options (eg. --ssl-protocol=X ) through nightmarejs?",[163,178],{"value":164,"source":65,"evidence":165},"How does it compare to Nightwatch, Selenium, CasperJS, or ZombieJS",[166,170,174],{"id":167,"by":168,"text":169},"8416938","ankit84","How is it different from http:\u002F\u002Fnightwatchjs.org\u002F ?",{"id":171,"by":172,"text":173},"8418512","SnowProblem","As someone entirely unfamiliar with both Nightmare and PhantomJS, what is the typical use case? It isn't obvious to me from the examples or FAQs. Why prefer these over something…",{"id":175,"by":176,"text":177},"8419659","nstart","Does anyone know how this compares to zombie js? I'm new to headless browser testing so apologies if question isn't relevant",{"value":179,"source":65,"evidence":180},"How to install on Ubuntu and run scripts",[181],{"id":182,"by":183,"text":184},"8425456","thinkvitamin","I use Ubuntu Linux, and I've got PhantomJS installed. Whether I use Nightmare, Nightmarejs, or Phantomjs on the command line this is what I get: ReferenceError: Can't find…",[186,197,205,209,216],{"value":187,"source":65,"evidence":188},"CasperJS",[189,193],{"id":190,"by":191,"text":192},"8416896","wehadfun","I'm using casper now but this seems like it may be even easier.",{"id":194,"by":195,"text":196},"8421332","meritt","Yeah, there's a ton of \"easier to use\" libraries atop Phantom. CasperJS is by far the most recognized and community-backed. Not sure what value all of these others provide.",{"value":198,"source":65,"evidence":199},"Selenium",[200,204],{"id":201,"by":202,"text":203},"8418071","curiously","the problem with Phantom.js is that compared to an actual browser it still falls short. I've given up on Phantom.js all together because it is actually not a true replacement for…",{"id":76,"by":77,"text":78},{"value":206,"source":65,"evidence":207},"Nightwatch.js",[208],{"id":167,"by":168,"text":169},{"value":210,"source":65,"evidence":211},"DalekJS",[212],{"id":213,"by":214,"text":215},"8416918","mknittig","Looks like DalekJS (http:\u002F\u002Fdalekjs.com\u002F)",{"value":217,"source":65,"evidence":218},"ZombieJS",[219],{"id":175,"by":176,"text":177},{"comments":221,"answered":41,"key":222},6,[223,226,227],{"id":224,"text":225},"8418785","hey sorry about that, just realized i forgot to npm publish v1.1.0 -- published now hope that helps",{"id":60,"text":61},{"id":228,"text":229},"8417424","yep this",{"commenters":231,"max_depth":43,"maker_replies":221,"first_comment_mins":18,"lifespan_hours":232},51,338,[234,236,239,241,245,247,251,254,256,258,260,264,268,270,273,275,278,279,282,284,288,291,294,295,296,300,303,307,310,313,316,318,320,324,326,327,328,329,333,336,340,345,348,350,352,354,357,360,363,365,368,370,372,375,378,380,382,384,388,392,395,399,402,405,407,410,412,413,415,418],[129,40,18,235,130,40],"project\u002Fcritical\u002Fexecution",[237,40,41,238,69,40],"8418018","project\u002Fneutral\u002Fdocs",[224,40,40,240,11,18],"maker\u002Fneutral\u002Fexecution",[242,40,43,243,244,40],"8420098","project\u002Fpositive\u002Fnone","zwischenzug",[60,18,40,246,11,18],"project\u002Fpositive\u002Fidea",[248,18,41,249,250,40],"8417241","project\u002Fneutral\u002Fidea","bennyg",[252,18,41,249,253,40],"8417306","aarondf",[228,18,40,255,11,18],"commenter\u002Fneutral\u002Fnone",[257,18,41,249,250,40],"8420976",[259,18,18,235,123,40],"8418599",[261,18,43,262,263,40],"8419167","maker\u002Fpositive\u002Fnone","dhotson",[265,37,41,266,267,40],"8417351","project\u002Fneutral\u002Fexecution","ssharp",[269,37,40,266,11,18],"8417386",[271,37,43,272,267,40],"8417416","project\u002Fpositive\u002Fexecution",[88,41,41,274,69,40],"project\u002Fmixed\u002Fexecution",[276,41,41,238,277,40],"8418114","Lord_Zero",[68,41,40,255,69,40],[280,41,43,246,281,40],"8419506","montecarl",[213,38,18,283,214,40],"project\u002Fcritical\u002Fidea",[285,38,18,286,287,40],"8417023","project\u002Fcritical\u002Fdesign","dcre",[289,38,18,283,290,40],"8417472","dgreensp",[292,38,18,283,293,40],"8418551","tiglionabbit",[190,43,43,246,191,40],[194,43,18,283,195,40],[297,221,40,298,299,40],"8417238","other\u002Fneutral\u002Fnone","mherrmann",[137,301,18,302,138,40],7,"project\u002Fcritical\u002Fdocs",[304,305,43,272,306,40],"8417077",8,"IanDrake",[102,308,40,309,103,40],9,"other\u002Fneutral\u002Fdesign",[311,308,40,309,312,40],"8420048","annnnd",[314,31,40,298,315,40],"8417653","novaleaf",[317,31,41,249,315,40],"8417667",[182,319,18,302,183,40],11,[321,322,40,298,323,40],"8417093",12,"chenglou",[167,325,41,249,168,40],13,[54,325,40,249,11,18],[76,325,41,249,77,40],[91,33,43,246,92,40],[330,331,41,238,332,40],"8420770",15,"dutzi_",[334,331,40,335,11,18],"8421040","maker\u002Fneutral\u002Fdocs",[337,338,40,298,339,40],"8420379",16,"andrey-p",[341,342,41,343,344,40],"8418014",17,"project\u002Fneutral\u002Fdesign","wearhere",[346,342,40,309,347,40],"8418050","AnkhMorporkian",[349,342,40,298,344,40],"8418163",[351,342,40,298,347,40],"8418628",[171,353,41,249,172,40],18,[355,353,41,249,356,40],"8418683","elwell",[358,32,41,343,359,40],"8417292","dylandempsey",[361,16,43,262,362,40],"8418666","brianzelip",[175,364,41,249,176,40],21,[145,366,41,367,146,40],22,"project\u002Fneutral\u002Fnone",[159,369,41,266,160,40],23,[371,369,41,266,160,40],"8420728",[373,369,18,235,374,40],"8483566","henballs",[106,376,43,377,107,40],24,"project\u002Fpositive\u002Fdesign",[152,379,18,235,153,40],25,[110,381,40,309,111,40],26,[95,383,43,243,96,40],27,[385,386,18,302,387,40],"8417002",28,"mdaniel",[389,386,40,390,391,40],"8418100","commenter\u002Fneutral\u002Fdocs","pbhjpbhj",[201,393,18,394,202,40],29,"project\u002Fcritical\u002Fperformance",[396,393,40,397,398,40],"8418221","commenter\u002Fneutral\u002Fidea","smellf",[400,393,40,401,202,40],"8418530","commenter\u002Fcritical\u002Fperformance",[403,393,41,367,404,40],"8418392","EGreg",[406,393,18,283,202,40],"8419815",[408,393,40,409,123,40],"8418604","commenter\u002Fneutral\u002Fperformance",[118,393,40,411,119,40],"other\u002Fcritical\u002Fperformance",[122,393,40,411,123,40],[414,393,40,411,202,40],"8419812",[416,393,40,411,417,40],"8420073","tommyd",[419,393,40,411,202,40],"8422383",[],[422,427,431,436,440,444],{"id":423,"name":424,"points":425,"category":426},"8423825","postgres_vectorization_test",332,"data",{"id":428,"name":429,"points":430,"category":20},"8422408","ReadMe.io",266,{"id":432,"name":433,"points":434,"category":435},"8427086","Sail boat simulation",229,"learning_science",{"id":437,"name":438,"points":439,"category":20},"8426558","DevTools tips",212,{"id":441,"name":442,"points":443,"category":20},"8400265","GoldenLayout",211,{"id":445,"name":446,"points":447,"category":448},"8405443","JuliusJS",202,"ai",false,"v2",{"id":452,"name":5,"line":6,"ai":449,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":453,"top":18,"kw":454,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":455,"url":9,"mix":456,"praise":85,"objection":115,"sub":21},8416693,-0.06,[21,24,25,26,27],"1353015533311315031335030335333151131000",[31,32,18,33],1794036523477]