I always used playwrite as an alternative to selenium, relatively surprised by its ability to interface with LLMs.