Пришлось мне однажды делать тестовое задание. В требованиях был Selenium, Java или C# и Page Objects. С языком (Java) и паттерном Page Objects у меня проблем не было. Java на уровне написания тестов достаточно проста, сильно глубоких знаний языка не требуется. Page Objects я использовал во время работы над рабочими проектами, так что это тем более затруднений не вызвало.

Page Objects

Это модель (или шаблон) написания автотестов, в которой для каждая страница рассматривается, как объект со своим набором полей и методов, где поля - это элементы страницы (кнопки, поля, тайтл и вообще что угодно), а методы - это действия над элементами (клик, чтение и изменение свойств, текста и прочего). Описав таким образом каждую страницу (причем делать это для всех элементов не нужно, а только для тех, с которыми проводится проверка), можно легко писать тестовые сценарии, при этом логика (т.е. сам тест) расположен отдельно. При изменении страницы или её элементов необходимо изменение Page Object, а сам тест не изменяется. Т.е. поддерживать такой тест очень удобно.

Selenium

Это фреймворк (или библиотека), которая может управлять браузером, эмулировать любые действия пользователя. Например, кликать, вводить данные в поля, изменять данные в полях, скроллить страницу и прочее. Подробнее о том что это можно почитать на оффсайте.

TestNg

А это раннер тестов, который может подготавливать окружение (например, запускать браузер), проводить стандартные процедуры перед каждым тестом (например, логиниться в приложение).

Что со всем этим делать

Дальше дело техники. Жонглируем архитектурой приложения Page Objects, используем методы Selenium, запускаем тесты при помощи TestNg.

А где же код

Вот тут одно из тестовых заданий, которое я делал. Вопросы можно задавать сюда.