It's worth to take a glance on selenium Webdriver.
This framework is one of the most popular for functional testing of web applications. Here are the most notable features of Webdriver: Direct calls to browser API. A lot of supported browsers Opportunity to develop automated tests using completely different programming languages: Java, C#, Python, etc. Ability to execute tests in "headless" mode Mature and efficient web driver's API allowing you to handle several like alerts, AJAX interactions, file upload and other
You'll additionally find that tons of third party applications and services (like browserstack) have tight integration with selenium Webdriver and ready to integrate with it out of the box.
Last but not least is Selenium Webdriver's community: it's huge and professional, allowing you to get answers quickly. You can find more information about Webdriver on the official web-site, and also browse blogs related to it.