Selenium webdriver with javascript

Selenium with JavaScript : Getting Started with Automation Testing

With the ever-expanding scope of web applications, both in terms of technology and functionality, user expectations have increased manifold. Every few weeks, new features are added to web applications for higher user engagement. In order to test these features and ensure that the UI is working well, automated testing is necessary. For testers across the world, Selenium is the first choice for executing automated tests.

Selenium is an open-source automation testing tool that supports a number of scripting languages like C#, Java, Perl, Ruby, JavaScript, etc. Depending on the application to be tested, one can choose the script accordingly.

JavaScript is one of the most popular choices when it comes to scripting, as suggested by the StackOverflow 2021 annual survey , which states that “JavaScript completes its ninth year in a row as the most commonly used programming language.” .

Popular Programming Markup and Scripting Languages

Why do developers prefer JavaScript for writing Selenium test scripts?

JavaScript is widely used for developing web applications, as a large fraction of web applications are developed using the MEAN stack (MongoDB, Express.js, AngularJS, and Node.js).

  • Selenium WebDriver with JavaScript is a favorable combination to perform automated UI testing of applications.
  • JavaScript offers efficiency with its well-built and structured patterns and functions, making the script more compact.
  • It offers security and is well supported by a large community of developers.
  • These are open source and free of cost, which helps in decreasing the overall cost of testing.
Читайте также:  Php msi windows installer

It is essential to perform an in-depth evaluation of the application under testing before choosing the scripting language for automated testing with Selenium WebDriver.

Getting started with Selenium using JavaScript: Tutorial

Selenium offers great flexibility when it comes to testing. Whether it is platforms like Windows, Linux, Solaris, or the browsers like Chrome, Firefox, Edge, IE, or Safari, Selenium allows platform-independent, cross-browser test functionality with no licensing costs. Here’s how to get started with the Automated UI testing of an application using Selenium WebDriver and JavaScript:

Prerequisites of the Setup Configuration

  1. Node.js (comes bundled with npm, i.e. Node package manager). For those comfortable with using Maven in Java, consider this to be the equivalent package manager for JS.
  2. Any IDE to write the code. The example in this article uses Eclipse.

Step 1: Install Node.js npm

One can download Node.js and npm , and then check that it is installed by running the following commands in the terminal.

Once the user has installed Node.js, they will get access to the npm, an inbuilt package manager which will be used to install Selenium for JS.

Step 2: Install Selenium WebDriver

One can download Selenium WebDriver, and install it by running the following command in the terminal by using the Node’s built-in package manager (NPM) to get the package.

npm install –save selenium-webdriver

( –save creates a new package. This would be saved to the project’s package.json file.)

From this page , get download links to the actual drivers that Selenium uses to command different browsers.

It is highly recommended to download links to drivers that the tester wants to work with (for example, Chrome and Firefox). Save them in a separate folder in separate directories and then add those folders to the system PATH. Once this is done, Selenium will be able to start the browser that the user tells it to, by using those executables.

Step 3: Install Eclipse

To perform Automation Testing, IDE is a platform that is required to write the test script. Here we use Eclipse. You can download Eclipse , and run the downloaded file.

Step 4: Install Selenium Webdriver and Client language bindings

Selenium WebDriver and client language bindings are important to establish a connection between the WebDriver and the client and perform testing. Here are the links to install the Selenium WebDriver and client language bindings:

Step 5: Creating and running test script using JavaScript and Selenium

Let’s write the first test script using JavaScript. The code will navigate to the Google.com page, and fetch its title on the console using the promise function.

var webdriver = require(‘selenium-webdriver’); var browser_name = new webdriver.Builder(); withCapabilities(webdriver.Capabilities.firefox()).build(); browser.get(‘http:/www.google.com’); var promise = browser_name.getTitle(); promise.then(function(title)  console.log(title); >); browser.quit(); 

The code sets aside the instance of selenium-webdriver, and then builds the browser using WebDriver and the Firefox plugin. In the browser, the code opens Google and fetches its title using promise. This title is then sent as output to the console before quitting the browser.

Best Practices using Selenium WebDriver with JavaScript

Here are some of the best practices to follow while using JavaScript with Selenium for automated testing:

  • Use the Right Locators: As the Selenium framework is meant to interact with the browser, it is essential to use the right locators for better navigation of the objects with the DOM (Document Object Model).
  • Perform Data-Driven Testing: For accurate results, make sure the testing is data-driven, as it will help to perform functional testing faster.
  • Choose the right selector order: Selector Order is important for faster testing. Get the right Selector Order i.e. (XPath < CSS < Links Text < Name < ID) in place for better results. Learn about different locators in selenium.
  • Use PageObjects: To enhance the overall maintenance and reduce redundancy and duplication, use PageObjects. Here the webpages are defined as classes, and the various elements on it are defined as variables, where the user interaction is implemented in the form of methods.

Selenium WebDriver has made automation testing easier and more efficient than ever. By using JavaScript to create test scripts, it is easy to perform automated UI Testing for applications. This is useful especially when development cycles are short and the features have to be added every few weeks to keep up with the users’ demand.

Selenium is widely recommended due to the flexibility it offers. It supports major platforms like Windows, Linux, etc., and browsers like Chrome, IE, Edge, Firefox, and Safari as well as numerous scripts like Ruby, Perl, C#, Python, Java, and JavaScript. With integrations of tools like TestNG Framework, one can get test results for further analysis, and improve the application.

To create an application with the optimal user experience, use cloud-based Automation Selenium Testing tools like BrowserStack that offers access to 3000+ real browsers and devices to test on. Test on a real device cloud to offer a seamless cross-platform experience through accurate testing. Since testing on Cloud Selenium Grid takes real user conditions into account, it helps identify the bottlenecks and deliver a seamless and consistent user experience across different browsers and devices.

Источник

JavaScript в связке с Selenium WebDriver. Опыт использования

Одной из очень спорных и обсуждаемых тем в автоматизации тестирования является выбор языка программирования. Особенно, когда речь идет о связке с самым популярным инструментом автоматизации – Selenium WebDriver, ведь он имеет официальную поддержку пяти языков: Java, C#, Python, JavaScript и Ruby. В дополнении к этому существует большое количество реализаций на других языках. Так что же нам лучше выбрать?

Опытный автоматизатор, хоть раз программирующий с использованием более чем одного языка, без сомнения скажет, что важна задача, а не инструмент. В этом и состоит большая разница, когда мы говорим “программированием на языке” или “программируем с использование языка.” При программировании с использование языка мы отталкиваемся от цели, для которой мы выбрали какой-либо язык программирования. Приведу пример: мы не хотим программировать на языке Swift, а хотим разрабатывать IOS приложения (это цель) и тогда, конечно же, мы должны освоить Swift, а не Java. Когда же мы говорим про автоматизацию тестирования, нашей целью может быть уменьшение времени ручного регресса за счет написания автотестов. Оно включает разработку многоуровневого фреймворка, подключение сторонних библиотек, оберток для интеграции вспомогательных инструментов, написание PageObjects для декомпозиции и инкапсуляции работы с элементами страницы / экрана приложения. Как видите, эти задачи не привязаны к платформе, технологии и какому-либо языку программирования. Именно поэтому в большинстве случаев в работе тестировщика-автоматизатора язык программирования является вспомогательным фактором.

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

1. Нестрогая типизация

Начну с самого провокационного плюса, потому что для сторонников строгой типизации это огромный минус. Опять же нужно отталкиваться от задач. Всегда ли нам для автоматизации нужен «кровавый энтерпрайз” – многоуровневый объектно-ориентированный фреймворк. Мой опыт говорит, что нет. Обычно этим увлекаются Senior Automation QAs, желающие потренироваться на работе в добавлении новых паттернов проектирования, что приводит к высокому порогу вхождения для начинающих специалистов. Конечно, вместо типов нельзя просто писать var / let / const, не задумываясь, как там внутри что преобразуется. Придется потратить время на изучение и набить руку, после чего скорость кодирования увеличится в разы.

2. JSON

Что такое JSON ? JSON – JavaScript Object Notation. И этим все сказано. Если хотите считывать данные в формате JSON в JavaScript объект, нужно написать всего одну строчку.

const someObject = require('./somefile.json')

Для этого не нужны никакие сторонние библиотеки, а с учетом нестрогой типизации вы также можете в одну строчку получать ответы от сервера и проверять полученный результат без создания каких-либо вспомогательных классов и объектов.

3. ES6 синтаксический сахар

Язык JavaScript очень активно развивается, чтобы подстроиться и быть удобным для всех. С приходом ES6 в JavaScript добавили такие привычные конструкции из ООП как Class / Extends. Но не спешите радоваться, суть языка от этого не поменялась. Это все еще не ООП, а прототипно-ориентированный язык. Ну и что? Синтаксический сахар на то и сахар, чтобы код выглядел привычно и красиво. Почему бы этим не воспользоваться? Так в нашей компании мы организовали очень плавный и безболезненный onboarding для людей, приходивших со знаниями C# и Java. Мы как бы притворились, что это ООП, используя его философию, а в дальнейшем коллеги изучили нюансы, прелести и недостатки нестрогой типизации.

4. Много современных фреймворков

Современная автоматизация не ограничивается одним лишь Selenium WebDriver. На рынке появляется больше количество классных инструментов, такие как Cypress, Puppeteer, Playwright, WebdriverIO, TestCafe. Какие-то из них более популярные, какие-то менее, но все они подразумевают написание автотестов с использованием JavaScript. Зная этот язык, вам будет проще найти работу и адаптироваться в компаниях, где используют эти инструменты.

5. Популярность самого языка

В первую очередь, JavaScript это язык для разработки Web сайтов, но он стал настолько популярным, что используется везде. Помимо популярных Web фреймворков как React / Angular, можно разрабатывать IOS/Android приложения с помощью React Native или писать микросервисы на платформе NodeJS (серверный JavaScript). Таким образом, с помощью JavaScript возможно разработать свой Frontend / Backend / IOS client, Android client и покрыть это все автотестами, находясь в одной экосистеме.

Это были мои 5 пунктов, почему вам стоит выбрать JavaScript для автоматизации тестирования. Кто-то со мной точно не согласится, поэтому пишите ваше конструктивное мнение в комментариях. Будет интересно почитать. А если вы только находитесь в начале пути автоматизатора, рекомендую посмотреть на курс Otus JavaScript QA Engineer , где вы изучите основы языка, необходимые для автоматизации и пройдете полный путь по разработке API / UI тестов и встраивание их в инфраструктуру проекта.

В качестве заключения приглашаю всех на бесплатный демоурок, в рамках которого разберём основы тестирования API и реализуем тестирование API с помощью mocha и chai.

Источник

Оцените статью