Show HN: I created a browser automation tool


176 points | by iamandras 306 days ago


  • fareesh 305 days ago
    There's a chrome extension that records all your steps and then generates a puppeteer/playwright script for you. Then you can just edit bits of that script and run it. This is my go-to method presently.

    I feel like you could incorporate some of those features into this and eliminate some of the manual entry of css selectors.

    • hoten 305 days ago
      FYI this is now built into the Chrome devtools "Recorder" panel.
    • lrobinovitch 305 days ago
      Browserflow is excellent!
      • mouzogu 305 days ago
        I really like the clean and simple layout of this website. It looks like bootstrap maybe. I wish more websites would follow this kind of layout.
    • xnx 305 days ago
      • eastendguy 305 days ago
        I use both!

        UI Vision is unique because it supports visual automation with image recognition and OCR. A bit like Sikuli but inside the browser. This avoids dealing with CSS selectors and XPaths.

    • magundu 305 days ago
      We are using Automa chrome extension for this kind of use cases. We really like it. It is free and open source. If you are thinking of building a product, you can make use of it.

    • iamandras 305 days ago
      Oh, interesting. What is the name of that extension?
      • EddySchauHai 305 days ago
        You can do it in the chrome browser tools! There's a record section. Note if you're doing this for automation testing it's going to be pretty flakey and you're better off following best practices and using custom testing selectors instead :)
        • fizzpack 305 days ago
          Why is it flakey for automation testing though? In my experience that's basically targeting page elements and interacting with them. Doesn't this do the same thing?
          • EddySchauHai 305 days ago
            It uses a combination of xpaths that are like body[1]div[2]div[1]p[2]button[1] so if you edit the UI it'll break, or worst case they do X,Y coordinates of clicks on a page so if the UI changes it'll break. Sometimes it'll get your ID or Name or whatever but some frameworks randomize these on compilation and some devs change them as part of refactoring.

            Best practice is to add test attributes to the HTML elements (such as data-testid="SubmitButton") so if the page is moved around or the button is edited the tests remain stable. There's a lot of good online sources on making UI testing somewhat more reliable :)

            • yowmamasita 305 days ago
              It detects the data-testid attribute quite well. We use it at work in replacement of manually creating cypress scripts.
              • EddySchauHai 304 days ago
                That’s good to know, I had bad luck with it then. But even so, you also lost the ability to use testing patterns like the page object model where you can update changing IDs or flows more easily - if something changes drastically early in the recording, wouldn’t it need to be re-recorded for all test cases?
      • Fnoord 305 days ago
        Selenium allows this, and its also there for Firefox. You can even export the actions as a different language e.g. Python.
      • fareesh 305 days ago
      • yareally 305 days ago
    • czbond 305 days ago
      I just started using a Selenium IDE + selenium-side-runner for headless automation. Is puppeteer or Selenium a more widely supported tool?
      • bckr 305 days ago
        Selenium is more widespread but I recommend Playwright as the most modern automation library. Comes with plugins for making your automations more... nimble.
        • czbond 299 days ago
          Thank you - I'll try it out.
      • EddySchauHai 305 days ago
        Selenium is the most popular tool in the industry but mostly for legacy reasons, its real competitor is Cypress. If you've just started a project I'd recommend checking it out, a huge time saver is that you install it as an npm package with a headless browser out the box without any webdriver/infra stuff slowing you down.
        • czbond 299 days ago
          Thank you - I'll check it out.
  • lorey 305 days ago
    Really interesting tool. I've always found the task of finding the right CSS selectors tiresome, so I created tool which automatically extracts the right selectors for you (and builds a scraper as well). Open Source on GitHub:
    • iamandras 305 days ago
      I'll check this repo, thx. It all started as an experiment with Playwright. And I also wanted to try whether I can build a full app, not just some simple scripts.
  • pmontra 305 days ago
    > Periodically check for changes

    I remember a Firefox extension that notified me with the diffs of changed pages. I don't remember exactly what I was using it for. I think something related to CVEs for some keywords. Then the service I was using shut down and I lost tracks of that extension.

    • ChrisGranger 305 days ago
    • xnx 305 days ago
    • beatthatflight 305 days ago
      Update Scanner. I use it a lot to track airline prices/sales.
      • pmontra 305 days ago
        It could be this one. I remember the yellow highlights.

        It was many years ago and definitely not a cloud service so not Distill Web Monitor. It didn't let me define fields to monitor, so not PageProbe.

        I wouldn't have used a cloud service. What's the point? My browser already have everything it takes to download pages and diff them. I understand that if the computer is off the browser won't monitor the page but it was ok with my use case: if it's off I won't be able to react to the CVE.

        And for other use cases, it's no business of anyone else but me to know what I'm monitoring.

        • mmsimanga 305 days ago
          I remember using the addon too. The reason for the addon had words to the effect that it enabled you to keep track of sites that did not have an RSS feed which was the more standard way getting new web content.
    • iamandras 305 days ago
      yeah. I was considering creating a focused version for this like
  • bcjordan 305 days ago
    I'd love to use this as a webpage interaction/scraping component in chains of webhooks (building on e.g. low-code step pipelines built with Pipedream, could imagine fitting with something like Zapier, too).

    Would require the ability to:

    (1) make a web request to start a run

    (2) collect the scraped info and return it as part of (a) a webhook call or (b) in the response of a synchronous "start run" blocked long http request

    It sounds like #1 is already possible. 2a might be possible if there was a call webhook step or notification option? But 2b would be the simplest (if I could make a single GET or POST request, and the response gives me some outputs from an automation session).

    Zapier/Pipedream integrations could be nice platform integration marketing for the tool as well.

  • Heavywater 304 days ago
  • Krastan 305 days ago
    This is cool! Is it free? If not would be good to have pricing be visible without creating an account.

    Also the logo in the header looks low definition. Upping its resolution will make the website way better.

    • matthberg 305 days ago
      Looks like a simple enough design that vector would probably be more space efficient and have infinite resolution. The product looks interesting too!
    • iamandras 305 days ago
      It is free for a short period of time, but after that, it will be a paid service.
      • permalac 305 days ago
        Do you have a cost plan?

        I've invested so much time in similar things just to not be able to afford it...

        • permalac 305 days ago
          My god, I'm on cellphone and did not see the costs at the bottom. Apologies.
        • iamandras 305 days ago
          What similar things?
  • melony 305 days ago
    Rocket ride is the name of Stripe's API demo app. Might want to change the name, this is bad for your SEO.
  • blackdogie 305 days ago
    Best of luck.

    Two things that have tripped me up 1. "and save the value of this attribute", it wasn't clear that this could only be certain values, text, id. 2. API I can list tasks, get the status of a task, start tasks via API, but I don't se how I can read the results / stored data

  • thih9 305 days ago
    Is there any way to play with the product without registering? Or perhaps see a video showing it in action?
    • whatatita 305 days ago
      Looks like you can register without CC details, and the majority of the homepage is a video example.
      • thih9 305 days ago
        > the majority of the homepage is a video example

        I’m not seeing any videos on the homepage (I’m using safari on iOS).

  • ramoz 305 days ago
    Curious what your pricing strategy is here? The free offering is cool for sure. Guess you'll learn how serious users may want to actually use the service, what that means for your unit costs, and how it all scales in your favor? or sort of already figured that out?
    • dieselgate 305 days ago
      Not sure if you’re asking about Author’s long term pricing strategy but the tiered pricing is on the site
      • ramoz 300 days ago
        more about how the author came up with the pricing and if/how they developed projections around it. There also wasnt a custom offering, so was wondering why not and if the author felt it wouldnt be financially effective.
  • BeetleB 305 days ago
    Only tangentially related, but...

    I use Firefox. Anyone know of a way I can have it close all tabs once a day? Either via an external script or an extension?

    • beatthatflight 305 days ago
      Selenium would do that, in python, no worries.

      Alternatively, have a batch script that just runs (Assuming windows) taskkill /f /im firefox.exe which would kill it. Then have firefox startup with no tabs loaded.

    • yjftsjthsd-h 305 days ago
      Not scripted, but ctrl-shift-w will do it manually in a single keystroke. (Per window)
  • Ladyady 301 days ago
    Are you no longer accepting new users?
  • dhux 305 days ago
    Can you also record video with sound?
  • anon115 305 days ago
    landing page is nice
  • partloyaldemon 305 days ago
    I'll check it out. Thanks!