Мы проводим тестирование с помощью браузера Chrome, и в большинстве случаев этого достаточно. Однако среди пользователей есть те, кто использует разные браузеры. Чтобы полностью удостовериться в работоспособности нашего приложения, было бы неплохо проводить тесты не только через Chrome, но и через другие браузеры.
Вспомним про запуск браузера
Мы с вами уже научились запускать браузер перед тестами. Вот статья чтобы освежить знания
1 - Объявляем переменную для автоматической версии браузера (Так как браузер постоянно обновляется, то несовпадение вашей версии и версии браузера приведёт к ошибке)
2 - Объявляем опции запуска, такие как размер окна, безголовый режим
3,4 - Инициализируем версию и опции
5 - Инициализируем наш драйвер, с помощью которого мы взаимодействуем с элементами на вебе
6 - Запускаем наш браузер во весь экран
По сути, это основа вашего проекта. В большинстве случаев всё будет происходить именно так.
После всех действий у нас, как ни удивительно, откроется окно Google Chrome. Но Java может работать не только с ним.
WebDriverManager предоставляет набор менеджеров для Chrome, Firefox, Edge, Opera, Chromium и Internet Explorer. Основное назначение этих менеджеров заключается в следующем:
WebDriverManager.chromedriver().setup();
WebDriverManager.firefoxdriver().setup();
WebDriverManager.edgedriver().setup();
WebDriverManager.operadriver().setup();
WebDriverManager.chromiumdriver().setup()
WebDriverManager.iedriver().setup();
С версии 5 WebDriverManager также предлагает менеджера для Safari, который называется safaridriver(). Особенность браузера Safari заключается в том, что ему не нужно управлять своим драйвером для работы с Selenium WebDriver, так как драйвер Safari уже встроен в сам браузер.
Запуск через новый браузер
Чтобы запустить тесты в другом браузере, например, в Firefox, нужно сделать всё то же самое, что описано выше, но с другими переменными.
Для начала скачайте и установите к себе данный браузер - FireFox.
Запустим любой тест, чтобы убедиться в запуске браузера
Вариации запуска ваших тестов с разным браузером
Например, если вы хотите запустить тесты в определённом браузере, вы можете сделать это в командной строке, указав нужный параметр.
То есть мы в командной строке будем указывать название браузера и в тестах произойдёт инициализация только нужного браузера. Как это выглядит на практике.
mvn test -Dtest="JAVATest#Properties2" -Dbrowser=Chrome
mvn test -Dtest="JAVATest#Properties2" -Dbrowser=FireFox
Запускаем поочерёдно и ждём результат. В качестве теста выбрал уже созданный тест, он просто открываем браузер и берёт название элемента.
Однако есть нюанс: в Java не всё так просто со сравнением строк. Если мы присвоим переменной Browser значение Chrome и попробуем сравнить её с помощью конструкции if (Browser == “Chrome”), то ожидаемого результата не получим.
Нам необходимо простое сравнение строк, которое даст логический результат — true или false. В этом может помочь метод contains, который сравнивает строку и определяет, содержится ли в ней нужное слово. Именно его мы и будем использовать.
Таким образом вы сможете запускать ваши тесты в нужном браузере. Если вам не нужно запускать тесты через командную строку, то можете указать параметр в ручную.
Важно помнить, что любые изменения, внесённые в код, могут повлиять на работу всего проекта. Например, если в вашем проекте есть TestListener, который выполняет действия после тестов, то изменение способа сравнения строк может привести к неожиданному поведению программы.
Про TestListener рассказываю тут:
С данным проектом вы сможете ознакомиться тут -
В дальнейшем разберём другие возможности кроссбраузерного тестирования.
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!