Автоматизированное тестирование Selenium с отключенными настройками JavaScript

Selenium был вершиной программного обеспечения с открытым исходным кодом в индустрии автоматизированного тестирования веб-сайтов. Платформа автоматизированного тестирования широко используется сообществом тестировщиков, чтобы помочь им автоматизировать взаимодействие с их веб-приложением для настольных компьютеров.

Я работаю тестировщиком автоматизации уже пару лет и с любовью отношусь к Selenium с тех пор, как узнал, на что он способен. Недавно я задумался над несколькими вопросами! Что произойдет, если я отключу JavaScript, а затем выполню автоматизированное тестирование с помощью Selenium? Как тогда отреагирует веб-сайт? Это вообще возможно? Это даже требуется?

Единственный способ узнать ответы на эти вопросы — проверить их на себе. И я пришел к интересным результатам. Вот почему я пишу эту статью, чтобы поделиться этими результатами с вами.

Что можно сделать с помощью JavaScript и чего нельзя!

Я уверен, что вы должны быть заинтригованы, чтобы узнать, есть ли необходимость тестировать веб-приложение после отключения JavaScript? Однако, прежде чем я отвечу на этот вопрос, нам нужно понять, что вы можете делать как тестировщик с JavaScript, а что нет!

Что можно делать с помощью JavaScript

  • Получите доступ и измените весь контент, видимый на веб-странице, такой как текст, изображения, видео или любые другие личные данные.
  • Получите доступ к файлам cookie, отправленным веб-сервером.
  • Сделайте запрос к другим серверам для захвата данных.

Вещи, которые вы не можете сделать с помощью JavaScript

  • Доступ к файлам, хранящимся в вашей локальной системе, кроме загруженных на веб-страницу.
  • Доступ к данным с других веб-страниц, открытых на других вкладках или в других браузерах.
  • Доступ и управление аппаратными возможностями вашей системы.
  • Доступ к любым материалам, связанным с установленными расширениями и плагинами.

Теперь, когда вы знаете назначение JavaScript. Вам может быть интересно, почему ваши конечные пользователи отключают JavaScript в своих браузерах во время серфинга в Интернете?

Почему пользователь посещает ваш сайт с отключенным JavaScript?

Хочешь верь, хочешь нет! Некоторые из нас на самом деле предпочитают работать в Интернете с отключенным JavaScript в наших браузерах. Почему?
Что ж, отключив JavaScript, мы стремимся добиться прерывистого взаимодействия с пользователем контента веб-сайта. Это устраняет всплывающие окна, рекламу, предупреждения и т. д. Давайте рассмотрим сценарий, чтобы лучше понять это.

Как вы думаете, что сейчас чувствовал бы Майк?

Что ж, он может быть разочарован общим впечатлением от веб-сайта. И такие всплывающие окна довольно часто встречаются на любом веб-сайте в Интернете. Вот почему Майк позаботился о том, чтобы отключить JavaScript, чтобы он больше не сталкивался с всплывающими окнами, оповещениями, предупреждениями, рекламой и т. д. с вашего веб-сайта.

Однако в тот момент, когда Майк отключил JavaScript, ваш сайт полностью рухнул! Содержание представлено в абсурдной манере. Изображения вашего веб-сайта со встроенными гиперссылками на связанные статьи сломались и начали показывать ссылки отдельно от изображения.

JavaScript

Выглядит кошмарно, не так ли? Теперь вы не сможете запретить таким пользователям, как Майк, отключать JavaScript в своих браузерах. Согласен, мало кто будет лазить по интернету, как Майк. Есть некоторые веб-сайты, которые полностью зависят от JavaScript, что на самом деле является плохой практикой и не может загрузить какие-либо ресурсы или снижает качество UX при отключенном JavaScript.

Тем не менее, это полностью зависит от того, насколько хорошо вы хотите, чтобы ваш бизнес выглядел, и, что более важно, от того, сколько. Лучше всего протестировать свой веб-сайт с отключенным JavaScript. Самое приятное то, что вам не нужно устанавливать какой-либо плагин или какое-либо другое стороннее приложение, чтобы отключить JavaScript, у вас есть эта опция в настройках вашего браузера. В следующих разделах я покажу вам, как вы можете протестировать с отключенным JavaScript. Однако, прежде чем мы это сделаем, есть еще несколько причин, по которым вам следует подумать об отключении JavaScript при тестировании своего веб-сайта.

Почему тестирование с отключенным JavaScript должно быть частью вашего контрольного списка контроля качества?

Увеличьте скорость тестирования: Поскольку основной целью JavaScript является создание интерактивных шаблонов на веб-странице, для загрузки которой требуется более высокая пропускная способность, а когда у вас соединение с более низкой пропускной способностью, он либо загружается очень медленно, либо ухудшает взаимодействие пользователя с веб-сайтом. Таким образом, тестирование после отключения JavaScript увеличивает скорость тестирования, избегая загрузки ненужных ресурсов JavaScript, и не приводит к сбою сценария автоматического тестирования из-за сбоя загрузки веб-страницы.
В заключение вы получите результаты тестирования в любой короткий период времени без каких-либо шансов нарушить ход тестирования из-за каких-либо сторонних ресурсов.

Легкость доступа: Многие конечные пользователи не хотят видеть какую-либо рекламу или всплывающие окна при доступе к любому веб-сайту, поскольку такие вещи отвлекают их от желаемого контента. Таким образом, часто такие ресурсы JavaScript закрываются конечными пользователями при доступе к определенному веб-сайту. Это вынуждает владельца веб-сайта протестировать свой веб-сайт после отключения JavaScript, чтобы убедиться, что их пользователи получают легкий доступ к своему веб-сайту.
Кроме того, имейте в виду, что некоторые веб-сайты полностью зависят от JavaScript, чтобы сделать их пользовательский интерфейс более интерактивным, тестирование таких веб-приложений после отключения JavaScript не имеет никакого смысла, чем было бы лучше, если вы пойдете на тестирование безголового браузера.

Кроссбраузерная совместимость: Общий проблемы кроссбраузерной совместимости для JavaScript можно заметить, например:

  • Браузерный интерпретатор JavaScript не может анализировать и выполнять код JavaScript.
  • Новые функции JavaScript, такие как ECMAScript6/ECMAScript Next и современные веб-API, не работают в старых версиях браузеров.

Обработка таких проблем с JavaScript может стать кошмаром для веб-разработчиков. Поэтому тестировщикам необходимо выполнить кроссбраузерное тестирование для проверки того, как их веб-сайт отображается без JavaScript, а затем команда разработчиков может приступить к решению проблем с JavaScript. Некоторые разработчики предпочитают метод прогрессивного улучшения, а некоторые предпочитают метод постепенного снижения для тестирования совместимости между браузерами.

LambdaTest — это инструмент для кросс-браузерного тестирования с более чем 2000 реальных браузеров, который поможет вам протестировать веб-приложения в облаке. Бесплатно зарегестрироваться!

Вы можете протестировать свой веб-сайт с помощью LambdaTest с JavaScript и без него, чтобы узнать, как ваша веб-страница отображается в различных сценариях.

Безопасность: Как уже говорилось, JavaScript — это исполняемый код веб-сайта, который загружается в локальный браузер вашей системы всякий раз, когда мы посещаем веб-сайт, а затем запускается. Многие рекламные объявления, видимые на веб-странице, являются основным намерением хакеров распространять вредоносное ПО. Этот вид онлайн-рекламы широко известен как вредоносная реклама и установка файлов cookie-зомби на компьютере пользователя. Это вынуждает конечных пользователей, которые очень заботятся о безопасности, отключать JavaScript веб-сайта для дальнейшего доступа.
Следовательно, теперь необходимо протестировать веб-приложение для таких конечных пользователей, которые предпочитают доступ к веб-сайтам без JavaScript.

Теперь мы рассмотрим процесс отключения JavaScript для тестирования веб-сайта.

Как отключить JavaScript для ручного тестирования

Я продемонстрирую процесс в двух браузерах, т. е. в Google Chrome и Mozilla Firefox, чтобы помочь вам интегрировать процесс в контрольный список кросс-браузерного тестирования. Я бы использовал LambdaTest, чтобы получить доступ к другому браузеру, не пытаясь их установить.

1. Гугл Хром

Тестирование в браузере Chrome всегда было приоритетом для тестировщиков. Вот как поиск Google представляет себя по умолчанию. То есть, когда JavaScript включен.

Отключить JavaScript для ручного тестирования

JavaScript включен

Ниже приведены шаги, которые могут помочь вам отключить JavaScript в Chrome:

  • Запустите веб-страницу, для которой необходимо отключить JavaScript.
  • Щелкните правой кнопкой мыши на странице и перейдите к Inspect Elements.
  • Как только вы откроете инструменты разработчика, нажмите CTRL+SHIFT+P.
  • Введите «Отключить JavaScript» и нажмите на первый вариант с надписью «Отладчик».

Отключить JavaScript

JavaScript отключен

2. Мозилла Фаерфокс

Как и в Google Chrome, вот как поиск Google представляет себя по умолчанию с включенным JavaScript.

включенный javascript

JavaScript включен

Выполните следующие шаги, чтобы отключить JavaScript для веб-сайта в Mozilla Firefox:

  • Запустите браузер и введите «about:config» в адресную строку URL.
  • Нажмите «Я принимаю на себя риск!» чтобы увидеть конфигурации
  • Введите «javascript.enabled» в поле поиска.
  • Дважды щелкните доступную запись «javascript.enabled», чтобы установить логическое значение как ложное.

JavaScript отключенJavaScript включен

Примечание: Вы можете использовать это Веб-сайт для подтверждения того, включен или отключен ваш JavaScript.

Как отключить JavaScript для автоматизированного тестирования с помощью Selenium

Теперь приступим к автоматическому тестированию с помощью Selenium. Ниже приведен код, который помогает отключить JavaScript в браузерах Chrome и Firefox. мы использовали ChromeOptions а также FirefoxПараметры класс для обработки настроек браузера. Эти классы дополнительно помогают в настройке ChromeDriver а также FireFoxDriver определенные возможности, такие как версия браузера, отключение расширения, запуск в максимальном режиме, запуск без заголовка и установка браузера по умолчанию.

Код для запуска автоматизированного тестирования с помощью Selenium в Mozilla Firefox

package DemoAutomation;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;

public class JSdisableFirefox {
    
    //Disabling JS in Firefox
    @Test()
    public void Firefox_javascript_disable() throws InterruptedException {

        System.setProperty("webdriver.firefox.driver", "C:\\geckodriver.exe");
        
        FirefoxOptions options = new FirefoxOptions();
        options.addPreference("javascript.enabled", false);
         
        WebDriver driver = new FirefoxDriver(options);
        
        driver.get("
        driver.findElement(By.name("q")).sendKeys("flowers");
        driver.findElement(By.className("Tg7LZd")).click();
        
        Thread.sleep(5000);
        driver.quit();

    }
}

Код для запуска автоматизированного тестирования с помощью Selenium в Google Chrome

package DemoAutomation;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class JSdisableChrome {

           //Disabling JS in Chrome
          @Test()
    public void Chrome_javascript_disable() throws InterruptedException {
        
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Lenovo-I7\\Desktop\\Selenium\\chromedriver.exe");
        
        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("profile.managed_default_content_settings.javascript", 2);
        options.setExperimentalOption("prefs", prefs);
        
        
        WebDriver driver = new ChromeDriver(options);
        
        driver.get("
        driver.findElement(By.name("q")).sendKeys("flowers");
        driver.findElement(By.className("Tg7LZd")).click();
        Thread.sleep(5000);
        
        
        driver.quit();  
        
        
    }
    
    

}

Вывод

JavaScript был неотъемлемой частью веб-разработки, и он определенно помогает нам создавать привлекательные веб-сайты. Однако важно, чтобы мы тестировали то, что мы строим. На мой взгляд, результаты были немного разрушительными с точки зрения UX. Несколько веб-сайтов, которые я тестировал, оказались полностью пустыми. Причина в том, что веб-сайт полностью зависел от рендеринга JavaScript. Даже если веб-сайт частично зависит от JavaScript, тестировщик несет ответственность за тестирование своего продукта с JavaScript и без него в соответствии с точки зрения пользователя. Не забыть тестирование совместимости браузера с отключенным JavaScript поможет вам обеспечить надежный веб-сайт для более широкой аудитории. Если вы используете облачный инструмент кросс-браузерного тестирования, такой как LambdaTest, вы можете протестировать более 2000 реальных браузеров, размещенных на виртуальной машине в облаке. Таким образом, вам не нужно беспокоиться о поддержке собственной библиотеки браузера, поскольку мы делаем это за вас. Удачного тестирования! 🙂

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *