I'm in a web systems development project, accessed by the browser. We are constantly making changes in the operation of the processes and at each specific period we perform a test on the system's functionalities (registers, validations, buttons, dimensions and etc.). Many of these tasks are repetitive, long, and done manually, so I would like to develop (in Java or C #) an application to perform such tests in an automated way. As needed I would just increment more in-app tests.
What I need: browsing the site, taking printscreen from certain pages, simulating clicks, simulating mouse movements, filling in fields, capturing page elements, scrolling the page. And mainly simulate different browsers, including mobile (access via smartphone). That is, everything a client would naturally do in my system.
How can I accomplish this in one of these languages? Is there a library for this?
Thank you.