You can use my project <a href="https:&#x2F;&#x2F;github.com&#x2F;machinepublishers&#x2F;jbrowserdriver" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;machinepublishers&#x2F;jbrowserdriver</a> which can be both headless or (what&#x27;s the opposite of headless?) have a full GUI. It runs on Java using Java&#x27;s built-in browser and will take a second to warm up when an instance is created, but after doing so, you can reuse the existing browser since I added a reset() API. Performance is comparable to desktop browsers (slightly slower), and for every action it blocks until AJAX page loads finish.