title
Selenium Full Course [2024] | Learn Selenium | Selenium Tutorial For Beginners | Edureka

description
🔥𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐒𝐞𝐥𝐞𝐧𝐢𝐮𝐦 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 : https://www.edureka.co/selenium-certification-training (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎") This Selenium Full Course video by Edureka will help you learn everything there is to know about Selenium. This Selenium tutorial for beginners will help you learn Selenium in 12 hrs. Concepts related to Selenium WebDriver, IDE, Grid & Selenium's industry implementation methodologies are extensively covered in this video. 00:00:00 Introduction 00:01:00 Agenda 00:02:22 What is Selenium 00:08:55 Features of Selenium 00:10:03 Components of Selenium 00:14:47 Demo 00:22:8 How to Install Selenium Webdriver for Java in Eclipse 00:29:30 Selenium Installation 00:48:25 How to Become a Test Automation Engineer 01:03:45 Top 10 Reasons to learn Selenium 01:09:10 Selenium Webdriver Architecture 01:15:32 Demo 01:27:04 WebElement in Selenium 01:28:34 Type of Web Elements 01:33:56 Introduction to Locators 01:52:39 Types of Locators 02:09:46 Introduction to CSS Selector 02:13:34 Demo 02:25:41 Xpath in Selenium 02:26:03 XML Document 02:32:27 Types of Xpath 02:35:57 Xpath Functions 02:47:49 Waits in Selenium 02:49:48 Types of Waits 03:08:52 How to Handle Alerts in Selenium 03:25:59 Handle Exceptions in SElenium Webdrivers 03:29:27 Types of Exception 03:41:10 Webdriver Listners 03:52:55 Testng Listners 04:02:56 TestNG Annotations in Selenium 04:10:03 Creating First Test Case 04:28:14 Action Class in Selenium Webdriver 04:34:37 How to handle Actions Class 04:48:53 Robot Class in Selenium WebDriver 04:51:58 How to Implement Robot Class 05:01:11 Limitations 05:40:19 How to take a Screenshot in Selenium WebDriver 05:41:38 How to take a Screenshot in Selenium 06:00:24 Cross Browser Testing using Selenium WebDriver 06:04:32 How to perform Cross Browser Testing 06:19:19 DataProvider in TestNG 06:22:41 Parameterization using DataProvider 06:32:10 Selenium Framework using java 06:38:01 Can Selenium WebDriver read Data from an Excel file for input? 06:53:28 Keyword-Driven Framework 07:06:44 Hybrid Framework 07:15:42 Cucumber Selenium 07:21:03 Steps to Create Application 07:37:36 Page Object Model in Selenium web driver 07:58:23 How to Perform Database Testing Using Selenium 08:20:03 Selenium Projects 08:20:13 Automating Edureka Website 08:33:59 Flight Booking Application 08:50:20 SElenium Case Studies 08:58:55 Selenium Vs RPA 09:04:19 Selenium VS QTP/UFT 09:11:13 Career in Automation Testing 09:38:56 Selenium Interview Question & Answers 🔴 Subscribe to our channel to get video updates. Hit the subscribe button above: https://goo.gl/6ohpTV 🔴 𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐎𝐧𝐥𝐢𝐧𝐞 𝐓𝐫𝐚𝐢𝐧𝐢𝐧𝐠 𝐚𝐧𝐝 𝐂𝐞𝐫𝐭𝐢𝐟𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬 🔵 DevOps Online Training: http://bit.ly/3VkBRUT 🌕 AWS Online Training: http://bit.ly/3ADYwDY 🔵 React Online Training: http://bit.ly/3Vc4yDw 🌕 Tableau Online Training: http://bit.ly/3guTe6J 🔵 Power BI Online Training: http://bit.ly/3VntjMY 🌕 Selenium Online Training: http://bit.ly/3EVDtis 🔵 PMP Online Training: http://bit.ly/3XugO44 🌕 Salesforce Online Training: http://bit.ly/3OsAXDH 🔵 Cybersecurity Online Training: http://bit.ly/3tXgw8t 🌕 Java Online Training: http://bit.ly/3tRxghg 🔵 Big Data Online Training: http://bit.ly/3EvUqP5 🌕 RPA Online Training: http://bit.ly/3GFHKYB 🔵 Python Online Training: http://bit.ly/3Oubt8M 🌕 Azure Online Training: http://bit.ly/3i4P85F 🔵 GCP Online Training: http://bit.ly/3VkCzS3 🌕 Microservices Online Training: http://bit.ly/3gxYqqv 🔵 Data Science Online Training: http://bit.ly/3V3nLrc 🌕 CEHv12 Online Training: http://bit.ly/3Vhq8Hj 🔵 Angular Online Training: http://bit.ly/3EYcCTe 🔴 𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐑𝐨𝐥𝐞-𝐁𝐚𝐬𝐞𝐝 𝐂𝐨𝐮𝐫𝐬𝐞𝐬 🔵 DevOps Engineer Masters Program: http://bit.ly/3Oud9PC 🌕 Cloud Architect Masters Program: http://bit.ly/3OvueZy 🔵 Data Scientist Masters Program: http://bit.ly/3tUAOiT 🌕 Big Data Architect Masters Program: http://bit.ly/3tTWT0V 🔵 Machine Learning Engineer Masters Program: http://bit.ly/3AEq4c4 🌕 Business Intelligence Masters Program: http://bit.ly/3UZPqJz 🔵 Python Developer Masters Program: http://bit.ly/3EV6kDv 🌕 RPA Developer Masters Program: http://bit.ly/3OteYfP 🔵 Web Development Masters Program: http://bit.ly/3U9R5va 🌕 Computer Science Bootcamp Program: http://bit.ly/3UZxPBy 🔵 Cyber Security Masters Program: http://bit.ly/3U25rNR 🌕 Full Stack Developer Masters Program: http://bit.ly/3tWCE2S 🔵 Automation Testing Engineer Masters Program: http://bit.ly/3AGXg2J 🌕 Python Developer Masters Program: https://bit.ly/3EV6kDv 🔵 Azure Cloud Engineer Masters Program: http://bit.ly/3AEBHzH 🔴 𝐄𝐝𝐮𝐫𝐞𝐤𝐚 𝐔𝐧𝐢𝐯𝐞𝐫𝐬𝐢𝐭𝐲 𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐬 🌕 Professional Certificate Program in DevOps with Purdue University: https://bit.ly/3Ov52lT 🔵 Advanced Certificate Program in Data Science with E&ICT Academy, IIT Guwahati: http://bit.ly/3V7ffrh Got a question on the topic? Please share it in the comment section below and our experts will answer. Please write to us at sales@edureka.co or call us at IND: 9606058406 / US: 18338555775 (toll-free) for more information.

detail
{'title': 'Selenium Full Course [2024] | Learn Selenium | Selenium Tutorial For Beginners | Edureka', 'heatmap': [{'end': 2225.808, 'start': 1837.971, 'weight': 1}], 'summary': 'Covers a comprehensive selenium tutorial for beginners, including fundamental concepts, setting up selenium with java and eclipse, test automation engineer roles and advantages, web element operations, css selectors and xpath usage, selenium webdriver, testng, automation techniques, cross-browser testing, data-driven testing, hybrid-driven framework, database integration, website interactions, flight booking process, selenium and rpa comparison, selenium vs. qtp comparison, and selenium test automation techniques.', 'chapters': [{'end': 1277.048, 'segs': [{'end': 706.181, 'src': 'embed', 'start': 675.606, 'weight': 4, 'content': [{'end': 679.147, 'text': 'This is exactly why a selenium ID was used.', 'start': 675.606, 'duration': 3.541}, {'end': 682.008, 'text': 'now, talking about selenium RC.', 'start': 679.147, 'duration': 2.861}, {'end': 686.95, 'text': 'selenium RC or selenium remote control was the first tool of the selenium suite.', 'start': 682.008, 'duration': 4.942}, {'end': 694.475, 'text': 'Earlier it was known as the JavaScript executor, and RC was a tool which made selenium famous in the market.', 'start': 687.592, 'duration': 6.883}, {'end': 701.819, 'text': 'all the credits to selenium being a masterpiece or selenium being very famous around the globe is because of selenium RC.', 'start': 694.475, 'duration': 7.344}, {'end': 706.181, 'text': 'It was the first tool that provided the support for multiple programming languages.', 'start': 702.059, 'duration': 4.122}], 'summary': 'Selenium rc, the first tool of the selenium suite, made selenium famous by providing support for multiple programming languages.', 'duration': 30.575, 'max_score': 675.606, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ675606.jpg'}, {'end': 773.626, 'src': 'embed', 'start': 727.835, 'weight': 0, 'content': [{'end': 730.957, 'text': 'All right, so this was about selenium RC now moving ahead.', 'start': 727.835, 'duration': 3.122}, {'end': 734.079, 'text': "Let's understand what exactly is selenium webdriver.", 'start': 730.977, 'duration': 3.102}, {'end': 737.601, 'text': 'Okay, so talking about selenium web drivers.', 'start': 734.099, 'duration': 3.502}, {'end': 744.026, 'text': 'selenium webdriver was the first cross-platform testing framework that could control the browser from the OS level.', 'start': 737.601, 'duration': 6.425}, {'end': 750.992, 'text': 'In contrast to ID Selenium WebDriver provides a programming interface to create and execute test cases.', 'start': 744.708, 'duration': 6.284}, {'end': 760.838, 'text': 'So these test cases can be written in such a way that the web elements on the web page can be identified and then perform actions on those elements.', 'start': 751.532, 'duration': 9.306}, {'end': 766.582, 'text': 'Also, Selenium WebDriver is an upgrade to RC because it is much faster.', 'start': 761.538, 'duration': 5.044}, {'end': 773.626, 'text': 'and it is faster because it makes direct calls to the browser and does not need a server between the client and the server.', 'start': 766.582, 'duration': 7.044}], 'summary': 'Selenium webdriver is a faster, cross-platform testing framework that controls browsers and provides a programming interface to create and execute test cases.', 'duration': 45.791, 'max_score': 727.835, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ727835.jpg'}, {'end': 1151.71, 'src': 'embed', 'start': 1125.198, 'weight': 2, 'content': [{'end': 1131.742, 'text': "I'm going to be creating of the select class and I'm going to instantiate it with the day one after you do that.", 'start': 1125.198, 'duration': 6.544}, {'end': 1134.624, 'text': "I'm going to pause this execution for three seconds.", 'start': 1131.762, 'duration': 2.862}, {'end': 1141.308, 'text': "That is 3,000 milliseconds and followed by which I'm going to give the index value as 6.", 'start': 1134.784, 'duration': 6.524}, {'end': 1145.551, 'text': 'So here you can see that the value 6 is given.', 'start': 1141.308, 'duration': 4.243}, {'end': 1151.71, 'text': 'Okay, which selects the bird day as 6 followed by which the next one would be for month.', 'start': 1145.571, 'duration': 6.139}], 'summary': 'Creating a select class, pausing execution for 3 seconds, setting index value as 6.', 'duration': 26.512, 'max_score': 1125.198, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1125198.jpg'}], 'start': 7.878, 'title': 'Selenium: fundamentals to best practices', 'summary': "Covers selenium's role in web testing, basics, technical concepts, career prospects, best practices, and interview questions. it also discusses the history, development, and current version of selenium, along with key features, major uses, language support, components, and setup process using java.", 'chapters': [{'end': 137.492, 'start': 7.878, 'title': 'Selenium: fundamentals to best practices', 'summary': 'Discusses the integral role of selenium in web testing, covering its basics, technical concepts, and career prospects, aiming to equip viewers with a thorough understanding and practical skills, and concluding with best practices and interview questions.', 'duration': 129.614, 'highlights': ['The need for Selenium web testing has become one of the most integral parts of many businesses, and the chapter aims to provide a thorough understanding about selenium, from theory to practical applications.', 'The agenda includes covering Selenium Fundamentals, understanding the importance of learning Selenium, exploring core concepts like WebElement, Locators, Selector, XPath, Weights, Alerts, and Listeners, and delving deep into technical concepts of Selenium.', 'The chapter also covers cross-browser testing using Selenium WebDriver, page object model in Selenium WebDriver, getting hands dirty with some Selenium projects, comparing Selenium with other testing tools, starting a career in automation testing, best practices in Selenium, and Selenium interview questions and answers.']}, {'end': 307.062, 'start': 144.799, 'title': 'History of selenium', 'summary': 'Highlights the development of selenium from its origins in 2004 by jason huggins, the contributions of dan fabulich and nelson sproul, the release of selenium rc in 2005, and the evolution into selenium webdriver and the current version being selenium 3.', 'duration': 162.263, 'highlights': ['Selenium was originally developed by Jason Huggins in 2004 as an internal tool at ThoughtWorks, later joined by Paul Hammond, and open-sourced in the same year.', "Dan Fabulich and Nelson Sproul's contributions in 2005 transformed Selenium RC into its current form, known as Selenium WebDriver.", 'In 2009, a test automation conference merged Selenium RC and Selenium WebDriver to create Selenium 2.0, and the current version in the market is Selenium 3.', 'In 2008, Selenium Grid was developed by Pat Lightbody to facilitate parallel test execution.', 'The history of Selenium reflects its growth from its origins in 2004 to the development of Selenium WebDriver and its current version, Selenium 3.']}, {'end': 934.999, 'start': 307.142, 'title': 'Introduction to selenium automation', 'summary': 'Introduces selenium, an open source tool for automating web browser tests, highlighting its key features, major uses, language support, and components, including selenium id, rc, webdriver, and grid, along with a simple demo of automating a web page.', 'duration': 627.857, 'highlights': ['Selenium is an open source tool for automating tests on web browsers, supporting various browsers and OS platforms. Selenium is an open source tool used for automating tests on web browsers, supporting various browsers like Chrome, Firefox, Safari, and different OS platforms like Windows, Mac, and Linux.', 'Selenium can be integrated with tools like TestNG, JUnit, Maven, Jenkins, and Docker for managing test cases and achieving continuous testing. Selenium can be integrated with tools like TestNG, JUnit, Maven, Jenkins, and Docker for managing test cases and achieving continuous testing, improving efficiency and reducing time for test execution.', 'Selenium supports a wide variety of programming languages, making it easy to automate testing across web applications and easy to understand as it is open source. Selenium supports a wide variety of programming languages like Java, Python, C++, C#, Ruby, and more, making it easy to automate testing across web applications and easy to understand as it is open source.', 'Selenium WebDriver, a cross-platform testing framework, provides a programming interface to create and execute test cases, making it faster and more efficient than Selenium RC. Selenium WebDriver is a cross-platform testing framework that provides a programming interface to create and execute test cases, making it faster and more efficient than Selenium RC, as it makes direct calls to the browser without needing a server between client and server.', 'Selenium Grid allows parallel test execution on different machines, achieving parallel execution and supporting both Selenium WebDriver and RC. Selenium Grid allows parallel test execution on different machines, achieving parallel execution and supporting both Selenium WebDriver and RC, making it suitable for running test cases on remote machines.']}, {'end': 1277.048, 'start': 935.419, 'title': 'Setting up selenium with java', 'summary': 'Details the process of setting up a selenium project using java, including adding selenium jar files, setting system properties, instantiating web driver instances, locating web elements, and interacting with web elements on a webpage.', 'duration': 341.629, 'highlights': ['The chapter details the process of setting up a Selenium project using Java, including adding Selenium jar files, setting system properties, instantiating web driver instances, locating web elements, and interacting with web elements on a webpage.', 'The speaker explains the steps to add Selenium jar files to the project by right-clicking on the folder, going to build path, and configuring the build path.', 'The transcript includes instructions for setting system properties, selecting the Chrome driver, and specifying the path to the executable file, followed by instantiating a web driver instance for the Chrome driver.', 'The process involves locating web elements using locators such as ID, and creating web elements for interacting with elements on the webpage, such as selecting a birth date, month, and year.', 'The speaker demonstrates interacting with web elements by changing the selected birth date, month, and year, pausing the execution, and handling errors when elements are not located as expected.']}], 'duration': 1269.17, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ7878.jpg', 'highlights': ['The need for Selenium web testing has become one of the most integral parts of many businesses, and the chapter aims to provide a thorough understanding about selenium, from theory to practical applications.', 'Selenium supports a wide variety of programming languages, making it easy to automate testing across web applications and easy to understand as it is open source.', 'The chapter details the process of setting up a Selenium project using Java, including adding Selenium jar files, setting system properties, instantiating web driver instances, locating web elements, and interacting with web elements on a webpage.', 'Selenium WebDriver, a cross-platform testing framework, provides a programming interface to create and execute test cases, making it faster and more efficient than Selenium RC.', 'Selenium Grid allows parallel test execution on different machines, achieving parallel execution and supporting both Selenium WebDriver and RC.']}, {'end': 2879.868, 'segs': [{'end': 1363.903, 'src': 'embed', 'start': 1338.133, 'weight': 2, 'content': [{'end': 1343.396, 'text': 'So here you must keep in mind that the Java version must be 8 or above.', 'start': 1338.133, 'duration': 5.263}, {'end': 1349.899, 'text': 'After that, we will be installing the Java from the official website that is Oracle.', 'start': 1344.476, 'duration': 5.423}, {'end': 1356.963, 'text': 'Once after the installation, we will also configure Java by setting the path in the system.', 'start': 1350.599, 'duration': 6.364}, {'end': 1361.917, 'text': 'After that we will check whether the Java is installed successfully or not.', 'start': 1357.705, 'duration': 4.212}, {'end': 1363.903, 'text': "Now, let's do the demo.", 'start': 1362.639, 'duration': 1.264}], 'summary': "Install and configure java 8+ from oracle's official website, set the system path, and verify the successful installation before proceeding with a demo.", 'duration': 25.77, 'max_score': 1338.133, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1338133.jpg'}, {'end': 1523.319, 'src': 'embed', 'start': 1492.195, 'weight': 1, 'content': [{'end': 1493.876, 'text': 'So this is the main folder.', 'start': 1492.195, 'duration': 1.681}, {'end': 1495.377, 'text': 'So double click on this too.', 'start': 1494.196, 'duration': 1.181}, {'end': 1499.434, 'text': 'You can see many files has been installed here.', 'start': 1496.854, 'duration': 2.58}, {'end': 1502.195, 'text': 'So let us copy the path from this folder.', 'start': 1499.955, 'duration': 2.24}, {'end': 1506.496, 'text': 'So copy this path now go to settings.', 'start': 1502.735, 'duration': 3.761}, {'end': 1511.597, 'text': 'Find for environment variables.', 'start': 1509.156, 'duration': 2.441}, {'end': 1516.438, 'text': 'So you can see here edit the system environment variables.', 'start': 1512.857, 'duration': 3.581}, {'end': 1520.318, 'text': "Okay, let's click on this as you can see here.", 'start': 1516.978, 'duration': 3.34}, {'end': 1522.399, 'text': 'We have the environment variables.', 'start': 1520.398, 'duration': 2.001}, {'end': 1523.319, 'text': 'So click on that.', 'start': 1522.539, 'duration': 0.78}], 'summary': 'Demonstration of navigating to system environment variables and copying file path.', 'duration': 31.124, 'max_score': 1492.195, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1492195.jpg'}, {'end': 2225.808, 'src': 'heatmap', 'start': 1837.971, 'weight': 1, 'content': [{'end': 1846.157, 'text': 'The next thing that we have to download is the Java client and if you scroll down you will get the Java client over here.', 'start': 1837.971, 'duration': 8.186}, {'end': 1849.7, 'text': 'That is also the version 4.3.0.', 'start': 1846.237, 'duration': 3.463}, {'end': 1850.761, 'text': 'Just click on that too.', 'start': 1849.7, 'duration': 1.061}, {'end': 1866.614, 'text': 'Now, after downloading these, both now go to file explorer, go to downloads and I am creating a folder in C drive called as selenium webdriver,', 'start': 1852.549, 'duration': 14.065}, {'end': 1871.576, 'text': 'and now I will move this both jar file as well as the Java client over here.', 'start': 1866.614, 'duration': 4.962}, {'end': 1877.238, 'text': 'Now as you can see here the Java client is a zipped file.', 'start': 1872.737, 'duration': 4.501}, {'end': 1881, 'text': "So let's unzip this and extract all the files over here.", 'start': 1877.358, 'duration': 3.642}, {'end': 1892.794, 'text': 'As you can see we have downloaded the selenium server jar file as well as the Java client to now Java client is a zipper file.', 'start': 1883.57, 'duration': 9.224}, {'end': 1898.597, 'text': "So now I have extracted also now, what will I do is I'll go to C folder.", 'start': 1892.854, 'duration': 5.743}, {'end': 1905.16, 'text': 'Now I have created a selenium web driver folder inside the C folder.', 'start': 1900.478, 'duration': 4.682}, {'end': 1908.742, 'text': 'Now, I will copy both of the files over here.', 'start': 1906.121, 'duration': 2.621}, {'end': 1913.309, 'text': "So let's copy this and I will go to C folder.", 'start': 1909.767, 'duration': 3.542}, {'end': 1915.349, 'text': 'Now you can see here.', 'start': 1914.229, 'duration': 1.12}, {'end': 1918.511, 'text': 'I have created a selenium webdriver folder.', 'start': 1915.369, 'duration': 3.142}, {'end': 1930.26, 'text': "So I'll paste it over here now copy the jar file to Okay.", 'start': 1919.391, 'duration': 10.869}, {'end': 1940.208, 'text': "Now once we have installed both the files over here now, let's go and install the browser driver to as I am using Chrome here as a browser.", 'start': 1931.101, 'duration': 9.107}, {'end': 1942.229, 'text': 'So I will install a chrome driver.', 'start': 1940.368, 'duration': 1.861}, {'end': 1945.131, 'text': "So let's write chrome driver.", 'start': 1942.909, 'duration': 2.222}, {'end': 1950.095, 'text': 'So click on the first link here.', 'start': 1948.093, 'duration': 2.002}, {'end': 1961.759, 'text': 'To check which version are you using, just go to this menu, click on help and Google Chrome and you can see the version over here.', 'start': 1951.684, 'duration': 10.075}, {'end': 1967.873, 'text': 'that is 103.0.5060.', 'start': 1961.759, 'duration': 6.114}, {'end': 1970.856, 'text': 'We have to install the same Chrome driver version.', 'start': 1967.873, 'duration': 2.983}, {'end': 1972.917, 'text': 'So that is a reason we checked now.', 'start': 1971.036, 'duration': 1.881}, {'end': 1978.762, 'text': "Now let's go to the official website and let's click on this version,", 'start': 1973.678, 'duration': 5.084}, {'end': 1987.269, 'text': "and the latest table version over here is this so let's click on this version or click on the version which you need.", 'start': 1978.762, 'duration': 8.507}, {'end': 1994.855, 'text': 'mine is Windows, and if your operating system is under Linux or Mac, then you can install according to it.', 'start': 1987.269, 'duration': 7.586}, {'end': 1996.597, 'text': "So I'll install the win.", 'start': 1995.075, 'duration': 1.522}, {'end': 2001.547, 'text': 'As I said you the chrome driver is a zip file.', 'start': 1998.664, 'duration': 2.883}, {'end': 2004.429, 'text': "So let's extract this over here.", 'start': 2002.047, 'duration': 2.382}, {'end': 2010.154, 'text': 'And copy the extracted file.', 'start': 2008.212, 'duration': 1.942}, {'end': 2015.698, 'text': 'And go to the folder where our selenium files are located.', 'start': 2011.615, 'duration': 4.083}, {'end': 2020.923, 'text': "So let's create a folder over here called chrome driver.", 'start': 2017.34, 'duration': 3.583}, {'end': 2025.847, 'text': 'Now paste this chrome files inside this folder.', 'start': 2022.764, 'duration': 3.083}, {'end': 2030.788, 'text': 'Okay now all set now.', 'start': 2028.746, 'duration': 2.042}, {'end': 2033.33, 'text': 'This is how we install the selenium web driver.', 'start': 2030.828, 'duration': 2.502}, {'end': 2036.433, 'text': "Now, let's see the demo within small example.", 'start': 2034.011, 'duration': 2.422}, {'end': 2041.577, 'text': 'So now let us go to our Eclipse and start coding with the small example.', 'start': 2037.274, 'duration': 4.303}, {'end': 2045.821, 'text': "Okay Now, let's start a new Java project.", 'start': 2043.099, 'duration': 2.722}, {'end': 2048.924, 'text': 'So click on create new Java project.', 'start': 2046.341, 'duration': 2.583}, {'end': 2056.266, 'text': "So let's write a project name has selenium demo 1.", 'start': 2049.965, 'duration': 6.301}, {'end': 2062.21, 'text': 'So here, just make sure the Java SE is minimum of 1.8.', 'start': 2056.266, 'duration': 5.944}, {'end': 2063.031, 'text': "So let's finish.", 'start': 2062.21, 'duration': 0.821}, {'end': 2068.654, 'text': 'So we have created a Java project name.', 'start': 2065.871, 'duration': 2.783}, {'end': 2071.416, 'text': "Now let's create a package over here.", 'start': 2069.175, 'duration': 2.241}, {'end': 2079.681, 'text': 'Right click on this, click on New, and you can see here the package over here, right? So click on that.', 'start': 2072.016, 'duration': 7.665}, {'end': 2083.103, 'text': "Let's write package name as edureka.", 'start': 2080.822, 'duration': 2.281}, {'end': 2090.514, 'text': 'You can write whichever name you wish to now has we created the package here.', 'start': 2084.331, 'duration': 6.183}, {'end': 2092.335, 'text': "Let's create a class over here.", 'start': 2090.775, 'duration': 1.56}, {'end': 2096.658, 'text': "So I'll click on new your class.", 'start': 2092.496, 'duration': 4.162}, {'end': 2107.903, 'text': "So I will give the class name has selenium script and don't forget to click this public static void mean because it is very important.", 'start': 2097.998, 'duration': 9.905}, {'end': 2120.391, 'text': 'Yeah, and you can see here the package name is edureka and the class name is selenium script and the public static void main.', 'start': 2111.598, 'duration': 8.793}, {'end': 2123.536, 'text': "and now let's start writing the code now.", 'start': 2120.391, 'duration': 3.145}, {'end': 2126.6, 'text': 'We want the chrome driver to be installed over here.', 'start': 2123.656, 'duration': 2.944}, {'end': 2133.819, 'text': 'and yeah, before that we just include the selenium files over here.', 'start': 2127.757, 'duration': 6.062}, {'end': 2139.621, 'text': 'so just right, click over here and you can see the build path over here.', 'start': 2133.819, 'duration': 5.802}, {'end': 2147.113, 'text': 'right, just click on this and configure build path and you can see the library over here.', 'start': 2139.621, 'duration': 7.492}, {'end': 2154.839, 'text': 'just click on that and add external jar files, because we have not added the selenium jar files till now.', 'start': 2147.113, 'duration': 7.726}, {'end': 2162.284, 'text': "So let's click on this the jar file and open then apply and close it.", 'start': 2155.259, 'duration': 7.025}, {'end': 2166.628, 'text': 'Now we have included the referenced libraries over here.', 'start': 2163.145, 'duration': 3.483}, {'end': 2168.409, 'text': "Now, let's start writing the code.", 'start': 2166.748, 'duration': 1.661}, {'end': 2173.643, 'text': 'So first we want the selenium drivers to be included.', 'start': 2168.93, 'duration': 4.713}, {'end': 2178.368, 'text': "so let's write system.setproperty.", 'start': 2173.643, 'duration': 4.725}, {'end': 2183.013, 'text': 'you can see here set properties.', 'start': 2178.368, 'duration': 4.645}, {'end': 2186.817, 'text': 'just write setproperty inside the codes.', 'start': 2183.013, 'duration': 3.804}, {'end': 2199.62, 'text': 'just write webdriver.chrome.driver, and after this just give a comma and include the chrome driver path over here.', 'start': 2186.817, 'duration': 12.803}, {'end': 2209.108, 'text': "so for that let's go to the file explorer and go to the selenium web driver folder and you can see the chrome driver folder here.", 'start': 2199.62, 'duration': 9.488}, {'end': 2213.652, 'text': 'just double click on this and you can see the files over here.', 'start': 2209.108, 'duration': 4.544}, {'end': 2225.808, 'text': "just copy the path and go to the editor again and paste it over here, and please don't forget to write this chromedriver.exe.", 'start': 2213.652, 'duration': 12.156}], 'summary': 'Installing selenium web driver and chrome driver for java client 4.3.0, creating project and writing code in eclipse.', 'duration': 387.837, 'max_score': 1837.971, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1837971.jpg'}, {'end': 2010.154, 'src': 'embed', 'start': 1978.762, 'weight': 0, 'content': [{'end': 1987.269, 'text': "and the latest table version over here is this so let's click on this version or click on the version which you need.", 'start': 1978.762, 'duration': 8.507}, {'end': 1994.855, 'text': 'mine is Windows, and if your operating system is under Linux or Mac, then you can install according to it.', 'start': 1987.269, 'duration': 7.586}, {'end': 1996.597, 'text': "So I'll install the win.", 'start': 1995.075, 'duration': 1.522}, {'end': 2001.547, 'text': 'As I said you the chrome driver is a zip file.', 'start': 1998.664, 'duration': 2.883}, {'end': 2004.429, 'text': "So let's extract this over here.", 'start': 2002.047, 'duration': 2.382}, {'end': 2010.154, 'text': 'And copy the extracted file.', 'start': 2008.212, 'duration': 1.942}], 'summary': 'Installing chrome driver on windows, extracting and copying the files.', 'duration': 31.392, 'max_score': 1978.762, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1978762.jpg'}], 'start': 1278.009, 'title': 'Setting up selenium webdriver, java, and eclipse', 'summary': 'Demonstrates the installation and setup of selenium webdriver, java, and eclipse, emphasizing the requirement for java version 8 or above, installing java 18 or java 17 for windows, configuring system environment variables, and automating gmail test script using google chrome for successful execution.', 'chapters': [{'end': 1427.508, 'start': 1278.009, 'title': 'Selenium webdriver installation and setup', 'summary': 'Demonstrates an example of locating elements using selenium webdriver, followed by a guide on installing and setting up java for selenium, emphasizing the requirement for java version 8 or above, and providing a walkthrough for downloading and installing java 18 or java 17 for windows.', 'duration': 149.499, 'highlights': ['The chapter demonstrates an example of locating elements using selenium webdriver. The demonstration showcases the basic understanding of how selenium works through locating elements using selenium webdriver.', 'A guide on installing and setting up Java for selenium, emphasizing the requirement for Java version 8 or above, and providing a walkthrough for downloading and installing Java 18 or Java 17 for Windows. The guide emphasizes the necessity of Java version 8 or above for selenium, and provides step-by-step instructions for downloading and installing Java 18 or Java 17 for Windows.']}, {'end': 1743.143, 'start': 1428.249, 'title': 'Installing java jdk and eclipse editor', 'summary': 'Covers the installation of java jdk 18.0.2 and eclipse ide, including setting system environment variables, with java successfully installed and eclipse editor launched.', 'duration': 314.894, 'highlights': ['Java JDK 18.0.2 successfully installed in the default folder, with the path configured in the system environment variables. The latest stable version of Java JDK, 18.0.2, is installed in the default folder, with the path configured in the system environment variables, ensuring proper installation.', 'Verification of Java installation through command prompt, confirming the successful installation of Java packages. The successful installation of Java JDK 18.0.2 is verified through the command prompt, confirming the availability of all Java packages.', 'Installation of Eclipse IDE by downloading the executable file from www.eclipse.org, with successful completion of the installation process. Eclipse IDE is installed by downloading the executable file from the official website, www.eclipse.org, and completing the installation process successfully.']}, {'end': 2385.16, 'start': 1743.583, 'title': 'Installing selenium web driver in eclipse', 'summary': 'Demonstrates the step-by-step process of installing selenium web driver in eclipse, including the installation of java, eclipse, selenium web driver, and the configuration of the web driver, with detailed guidance on creating a new java project, package, and class, and executing a small example in eclipse.', 'duration': 641.577, 'highlights': ['The chapter explains the step-by-step process of installing Selenium Web Driver in Eclipse, including the installation of Java, Eclipse, Selenium Web Driver, and the configuration of the web driver, with detailed guidance on creating a new Java project, package, and class, and executing a small example in Eclipse.', 'The latest stable version of Selenium Web Driver mentioned is 4.3.0, emphasizing the importance of using the latest version for installation.', "The process of installing Selenium Web Driver includes downloading the Selenium server jar file and the Java client, extracting the Java client, creating a folder in the C drive named 'selenium webdriver,' and moving the jar file and Java client to the created folder.", 'The chapter provides detailed instructions on installing the browser driver, specifically for Chrome, including checking the Chrome version, downloading the corresponding Chrome driver version, extracting the zip file, creating a folder for the Chrome driver, and moving the extracted files to the designated folder.', 'Demonstration of creating a new Java project, package, and class in Eclipse, with a focus on ensuring Java SE is a minimum of 1.8, and configuring the build path by adding external jar files for Selenium, followed by writing and executing the code to open a specific website, print its title, and automatically quit the browser, thus illustrating the successful installation of Selenium Web Driver.']}, {'end': 2879.868, 'start': 2385.16, 'title': 'Automating gmail test script', 'summary': 'Covers automating and testing gmail using google chrome, including creating a test script, automating browser features, building a test case, and executing the script successfully.', 'duration': 494.708, 'highlights': ['Creating a test script and automating browser features The transcript describes creating a test script to automate and test Gmail using Google Chrome, including setting up prerequisites, configuring selenium for Eclipse IDE, creating a package and class, and automating browser features.', 'Building a test case and executing the script successfully The chapter explains building a test case for the Gmail automation script, including establishing a test condition, executing the script, and verifying the test results.', 'Importance of drivers in automating web browsers The importance of drivers in automating web browsers is emphasized, highlighting that drivers are necessary to instantiate browsers and explaining the process of connecting the driver to the program.']}], 'duration': 1601.859, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ1278009.jpg', 'highlights': ['The chapter provides detailed instructions on installing the browser driver, specifically for Chrome, including checking the Chrome version, downloading the corresponding Chrome driver version, extracting the zip file, creating a folder for the Chrome driver, and moving the extracted files to the designated folder.', 'Demonstration of creating a new Java project, package, and class in Eclipse, with a focus on ensuring Java SE is a minimum of 1.8, and configuring the build path by adding external jar files for Selenium, followed by writing and executing the code to open a specific website, print its title, and automatically quit the browser, thus illustrating the successful installation of Selenium Web Driver.', 'A guide on installing and setting up Java for selenium, emphasizing the requirement for Java version 8 or above, and providing a walkthrough for downloading and installing Java 18 or Java 17 for Windows. The guide emphasizes the necessity of Java version 8 or above for selenium, and provides step-by-step instructions for downloading and installing Java 18 or Java 17 for Windows.', 'The chapter explains the step-by-step process of installing Selenium Web Driver in Eclipse, including the installation of Java, Eclipse, Selenium Web Driver, and the configuration of the web driver, with detailed guidance on creating a new Java project, package, and class, and executing a small example in Eclipse.', 'Importance of drivers in automating web browsers The importance of drivers in automating web browsers is emphasized, highlighting that drivers are necessary to instantiate browsers and explaining the process of connecting the driver to the program.']}, {'end': 5216.21, 'segs': [{'end': 4064.655, 'src': 'embed', 'start': 4037.626, 'weight': 1, 'content': [{'end': 4045.529, 'text': 'Executing multiple test cases at the same time is called parallel testing, and executing them in remote machines is called distributed testing.', 'start': 4037.626, 'duration': 7.903}, {'end': 4047.949, 'text': 'selenium grid is used for this purpose.', 'start': 4045.529, 'duration': 2.42}, {'end': 4052.011, 'text': 'by performing parallel and distributed testing, you save time to run the tests.', 'start': 4047.949, 'duration': 4.062}, {'end': 4058.493, 'text': 'You do not need extra machines to perform the tests and you can also execute the same test cases on different web servers.', 'start': 4052.531, 'duration': 5.962}, {'end': 4064.655, 'text': 'The next reason why you should launch selenium is because selenium does not depend on any GUI based systems.', 'start': 4059.233, 'duration': 5.422}], 'summary': 'Parallel and distributed testing with selenium grid saves time, resources, and can be executed on different web servers without relying on gui based systems.', 'duration': 27.029, 'max_score': 4037.626, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ4037626.jpg'}, {'end': 5183.77, 'src': 'embed', 'start': 5155.457, 'weight': 0, 'content': [{'end': 5161.599, 'text': 'So what should happen? It should launch Firefox navigate to twitter.com and perform the actions on the web elements.', 'start': 5155.457, 'duration': 6.142}, {'end': 5163.179, 'text': "Let's see what happens.", 'start': 5162.159, 'duration': 1.02}, {'end': 5168.704, 'text': 'You can see that Mozilla Firefox driver instantiated it launched.', 'start': 5164.482, 'duration': 4.222}, {'end': 5170.305, 'text': 'Gecko driver launched.', 'start': 5168.704, 'duration': 1.601}, {'end': 5173.046, 'text': 'Firefox navigated to Twitter.', 'start': 5170.305, 'duration': 2.741}, {'end': 5174.226, 'text': 'hit on the sign up.', 'start': 5173.046, 'duration': 1.18}, {'end': 5175.887, 'text': 'enter name and phone number.', 'start': 5174.226, 'duration': 1.661}, {'end': 5177.048, 'text': 'hit on the next button.', 'start': 5175.887, 'duration': 1.161}, {'end': 5183.77, 'text': 'Yes, So this is what you can see in the front end, but in the back end, in action,', 'start': 5177.648, 'duration': 6.122}], 'summary': 'Firefox launched, navigated to twitter, performed web actions.', 'duration': 28.313, 'max_score': 5155.457, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ5155457.jpg'}], 'start': 2881.335, 'title': 'Test automation engineer role and advantages of selenium testing', 'summary': 'Introduces the role of a test automation engineer, qualifications required, and essential skills, with an overview of job profiles and key statistics in the industry. it also highlights the advantages of using selenium for testing, making it a compelling choice for automation testing, with a focus on its architecture and internal working.', 'chapters': [{'end': 3205.389, 'start': 2881.335, 'title': 'Test automation engineer role', 'summary': 'Introduces the role of a test automation engineer, emphasizing the importance of software testing, qualifications required, and essential skills, with an overview of job profiles and key statistics in the industry.', 'duration': 324.054, 'highlights': ["The role of the test automation engineer is to design, build, test, and deploy effective test automation solutions, applying appropriate automation technologies to meet the short and long term goals of the testing organization. The test automation engineer is responsible for designing, building, testing, and deploying effective test automation solutions by applying appropriate automation technologies to meet the organization's testing goals.", 'The software testing process involves evaluating the functionality of a software application to find any bugs and checking whether the developed software meets specified requirements to produce a quality product. Software testing is the process of evaluating software functionality to find bugs and ensure that the developed software meets specified requirements for producing a quality product.', "Qualifications for becoming an automation engineer include a bachelor's degree in a related field, proficiency in programming languages like C, C++, Java, SQL, Python, and HTML, and additional certifications in computer science, machine learning, or automation testing. To become an automation engineer, one needs a bachelor's degree in a related field, proficiency in programming languages, and additional certifications in computer science or automation testing.", 'Essential skills required for a test automation engineer include knowledge of testing, agile methodologies, SQL test planning, proficiency in programming languages like Python, Golang, and JavaScript, along with familiarity with AWS, microservices, Docker, and Selenium. Key skills for a test automation engineer include knowledge of testing, agile methodologies, SQL test planning, proficiency in programming languages like Python, Golang, and JavaScript, and familiarity with AWS, microservices, Docker, and Selenium.', 'The top job profiles for a Test Automation Engineer include Test Automation, Performance Tester, Test Analyst, and QA Engineer, with top companies in test automation including Accenture, Cognizant, IBM, TCS, and Infosys. Top job profiles for a Test Automation Engineer include Test Automation, Performance Tester, Test Analyst, and QA Engineer, with prominent companies in this field being Accenture, Cognizant, IBM, TCS, and Infosys.']}, {'end': 3812.443, 'start': 3206.389, 'title': 'Test automation engineer skills & opportunities', 'summary': 'Introduces the top companies and industries for performance testing, preferred locations, must-have skills, job profiles, roles, responsibilities, and the essential steps to become a successful test automation engineer, emphasizing the importance of manual testing, programming skills, technical skills, application understanding, automation testing tools, atlc methodology, test automation strategy, and staying updated with testing trends.', 'duration': 606.054, 'highlights': ['The United States is considered to be the best preferred location for a performance tester followed by India, UK, Canada, and Australia. The top preferred locations for performance testers are the United States, India, UK, Canada, and Australia.', 'Some of the must-have skills to become a performance tester include knowledge of Selenium Cucumber, Java API, Appium, Jira, Python, and proficiency with automation tools. Must-have skills for a performance tester include knowledge of Selenium Cucumber, Java API, Appium, Jira, Python, and proficiency with automation tools.', 'Manual testing is a crucial process for finding defects or bugs in a software program, and automation testing is for experienced manual testers. Manual testing is a crucial process for finding defects or bugs in a software program, and automation testing is for experienced manual testers.', 'Programming skills such as C, C++, Java, SQL, Python, Perl, XML, HTML, and CSS are essential for automation testing engineers. Essential programming skills for automation testing engineers include C, C++, Java, SQL, Python, Perl, XML, HTML, and CSS.', 'Understanding the application details, automation testing tools, ATLC methodology, test automation strategy, and staying updated with testing trends are crucial steps to become a successful test automation engineer. Understanding the application details, automation testing tools, ATLC methodology, test automation strategy, and staying updated with testing trends are crucial steps to become a successful test automation engineer.']}, {'end': 4090.656, 'start': 3812.443, 'title': 'Advantages of selenium testing', 'summary': 'Highlights the advantages of using selenium for testing, including its open-source nature, platform independence, language flexibility, availability of frameworks, integration with devops, and support for parallel and distributed testing, making it a compelling choice for automation testing.', 'duration': 278.213, 'highlights': ['Selenium is an open-source tool, which means anybody can use it for free. Selenium is powered by Apache and backed by Google, making it accessible to any organization or independent programmer without any cost implications.', 'Selenium has no operating system or browser or hardware demands, making it platform independent. Unlike other tools, Selenium does not require specific operating systems or browsers, allowing testing on any system and browser.', 'Selenium does not require specialization in a particular programming language, providing flexibility for programmers familiar with various languages. Programmers can use languages like Java, Python, Pearl, PHP, Ruby, C#, or .NET for Selenium without any restrictions, unlike other testing tools.', 'Selenium offers various frameworks like data-driven testing, keyword-driven testing, and hybrid testing, reducing coding and testing time. The availability of frameworks in Selenium allows for efficient modifications and reduces the time to code and test, making it a preferred choice for companies.', "Selenium forms an integral part of the continuous testing phase in the devops life cycle, making it widely adopted in companies replacing agile or waterfall approaches. Selenium's integration with the DevOps life cycle and its emphasis on open-source tools make it a crucial component in the continuous testing phase."]}, {'end': 4526.346, 'start': 4091.607, 'title': 'Reasons to learn selenium and its architecture', 'summary': "Highlights the flexibility of selenium for designing test cases, the increasing demand for selenium testers, and provides an in-depth explanation of selenium's architecture and its components, including its internal working and communication process.", 'duration': 434.739, 'highlights': ['Selenium has the greatest demand among all the tools in the market, with increasing job vacancies and good pay. The increasing demand for Selenium testers is evident from the rising job vacancies since 2008 and the expectation of continued demand growth in the future.', 'Selenium supports multiple languages like Java, Ruby, Python, and more, with language bindings to allow support for multiple languages. Selenium supports multiple client libraries such as Java, Ruby, Python, and others, facilitating the support for various programming languages.', 'Selenium architecture comprises four main components: Selenium client library, Jason via protocol over HTTP, browser drivers, and real browsers, supporting various browsers like Firefox, Chrome, Safari, and more. The Selenium architecture includes components like client libraries, Jason via protocol, browser drivers, and real browsers, supporting a wide range of browsers and providing the necessary communication between languages and browsers.', 'Selenium internally creates a Jason payload for a post call, communicating with the client library and browser drivers over HTTP protocol, enabling the execution of actions on real browsers. Internally, Selenium utilizes a Jason payload for communication over the HTTP protocol, facilitating the execution of commands on real browsers through the client library and browser drivers.']}, {'end': 5216.21, 'start': 4527.247, 'title': 'Selenium architecture and internal working', 'summary': 'Demonstrates the internal working of selenium architecture, including setting up the selenium standalone server and browser drivers, creating a session, executing commands using json wire protocol, and understanding the internal communication between the client, browser driver, and real browser.', 'duration': 688.963, 'highlights': ['The Selenium standalone server needs to be set up to execute the program, requiring the download of the server and browser drivers like the gecko driver and Chrome driver. The chapter emphasizes the importance of setting up the Selenium standalone server and downloading necessary browser drivers like gecko driver and Chrome driver.', "Executing the command 'Java -jar selenium-server-standalone' launches the standalone server on port number 4444, initializing the webdriver servlet. The command 'Java -jar selenium-server-standalone' is used to launch the standalone server on port 4444, initializing the webdriver servlet.", 'The internal communication between the client, browser driver, and real browser occurs over HTTP using the JSON wire protocol, where the client library converts the statements to JSON format and communicates with the browser. The internal communication between the client, browser driver, and real browser occurs over HTTP using the JSON wire protocol, facilitating the conversion of statements to JSON format by the client library.', 'The demonstration covers creating a script to launch the Firefox driver, perform actions on web elements, and understand the backend communication between the client and browser driver. The demonstration includes creating a script to launch the Firefox driver, perform actions on web elements, and understand the backend communication between the client and browser driver.', 'The demonstration highlights the process of setting up and creating an instance of browser drivers like the Chrome driver for cross-browser testing. The demonstration emphasizes the process of setting up and creating an instance of browser drivers like the Chrome driver for cross-browser testing.']}], 'duration': 2334.875, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ2881335.jpg', 'highlights': ['The role of the test automation engineer is to design, build, test, and deploy effective test automation solutions, applying appropriate automation technologies to meet the short and long term goals of the testing organization.', 'Selenium has the greatest demand among all the tools in the market, with increasing job vacancies and good pay.', 'Selenium offers various frameworks like data-driven testing, keyword-driven testing, and hybrid testing, reducing coding and testing time.', 'Understanding the application details, automation testing tools, ATLC methodology, test automation strategy, and staying updated with testing trends are crucial steps to become a successful test automation engineer.', 'The top job profiles for a Test Automation Engineer include Test Automation, Performance Tester, Test Analyst, and QA Engineer, with top companies in test automation including Accenture, Cognizant, IBM, TCS, and Infosys.']}, {'end': 8615.751, 'segs': [{'end': 7496.528, 'src': 'embed', 'start': 7464.945, 'weight': 1, 'content': [{'end': 7471.15, 'text': 'And the locators will still work even after you change the properties of the user interface elements.', 'start': 7464.945, 'duration': 6.205}, {'end': 7477.155, 'text': 'and also they work even after you change the properties of the UI elements around the element you target.', 'start': 7471.15, 'duration': 6.005}, {'end': 7479.857, 'text': 'So sounds very simple right?', 'start': 7477.855, 'duration': 2.002}, {'end': 7484.139, 'text': 'So it works, even if you change the properties of the user interface.', 'start': 7480.257, 'duration': 3.882}, {'end': 7487.982, 'text': 'elements that you target as well sounds much simple, right?', 'start': 7484.139, 'duration': 3.843}, {'end': 7496.528, 'text': 'What are element locators?', 'start': 7494.306, 'duration': 2.222}], 'summary': 'Element locators work even after ui properties change.', 'duration': 31.583, 'max_score': 7464.945, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ7464945.jpg'}, {'end': 7710.54, 'src': 'embed', 'start': 7682.505, 'weight': 0, 'content': [{'end': 7689.007, 'text': 'CSS selector is always the best possible way to locate complex elements in the web page.', 'start': 7682.505, 'duration': 6.502}, {'end': 7698.75, 'text': 'this type of locator mainly uses some unique symbols in order to find an element will learn more about it when we get to the introduction section.', 'start': 7689.007, 'duration': 9.743}, {'end': 7701.731, 'text': "Now, let's discuss about partial link text.", 'start': 7699.47, 'duration': 2.261}, {'end': 7710.54, 'text': 'In some situations say you may need to find the links by the portion of the text in the link text element in such situations.', 'start': 7702.455, 'duration': 8.085}], 'summary': 'Css selector is a powerful way to locate complex elements in a web page. it uses unique symbols. partial link text is used to find links by a portion of the text.', 'duration': 28.035, 'max_score': 7682.505, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ7682505.jpg'}, {'end': 8369.352, 'src': 'embed', 'start': 8329.179, 'weight': 3, 'content': [{'end': 8332.323, 'text': 'We are going to perform all our operations on this webpage.', 'start': 8329.179, 'duration': 3.144}, {'end': 8340.683, 'text': 'So now say if you want to search for this particular element on the webpage, Each element in this page is considered as a web element.', 'start': 8332.984, 'duration': 7.699}, {'end': 8347.228, 'text': "So say, if you want to search for this particular element, I'm going to inspect this by right-clicking.", 'start': 8341.065, 'duration': 6.163}, {'end': 8356.155, 'text': 'you can see that the corresponding HTML code for this location is present here and the ID is present, which is the CSS locator.', 'start': 8347.228, 'duration': 8.927}, {'end': 8360.198, 'text': 'one good thing about selenium is that allows the plugins to work with them.', 'start': 8356.155, 'duration': 4.043}, {'end': 8369.352, 'text': 'So selenium also supports a plug-in called crow paths where you can easily find the XPath and the CSS selector of the location.', 'start': 8361.004, 'duration': 8.348}], 'summary': 'Using selenium for webpage operations and element search, including css locators and xpath, with support for plugins.', 'duration': 40.173, 'max_score': 8329.179, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ8329179.jpg'}], 'start': 5216.21, 'title': 'Web element operations in selenium', 'summary': 'Provides an overview of web elements in selenium, covering types of web elements, operations performed, and element locators used, with emphasis on practical examples and automation on ebay.', 'chapters': [{'end': 5420.501, 'start': 5216.21, 'title': 'Web element in selenium', 'summary': 'Provides an introduction to web elements in selenium, explaining how to identify and interact with various types of web elements, including text box, button, link, image, checkbox, radio button, drop-down box, list box, and combo box.', 'duration': 204.291, 'highlights': ['Web elements are anything present on the web page such as a text box, button, link, etc. The chapter explains that web elements encompass anything present on a web page, including text boxes, buttons, links, and more.', 'Types of web elements in Selenium include text box, button, link, image, checkbox, radio button, drop-down box, list box, and combo box. The chapter details various types of web elements in Selenium, including text boxes, buttons, links, images, checkboxes, radio buttons, drop-down boxes, list boxes, and combo boxes.', 'Explanation of each type of web element and its functionality such as text box for typing, link for navigation, button for interaction, and more. The chapter delves into the functionality of different web elements, explaining their specific purposes, such as typing in text boxes, navigation through links, interaction with buttons, and more.']}, {'end': 6362.051, 'start': 5421.041, 'title': 'Types of web elements & operations in selenium', 'summary': 'Covers various operations performed on web elements in selenium, including actions on browser, web page, image, text area, checkbox, radio button, drop-down box, list box, combo box, web table, frames, and element locators. a demonstration is given on how to work with element locators using selenium.', 'duration': 941.01, 'highlights': ['The chapter covers various operations performed on web elements in Selenium, including actions on browser, web page, image, text area, checkbox, radio button, drop-down box, list box, combo box, web table, frames, and element locators (e.g. ID, name, class, link text, CSS selector, partial link text, XPath).', 'A demonstration is given on how to work with element locators using Selenium, including the process of setting up the browser driver, getting the web page URL, finding elements using locators, and performing actions such as sending keys, clicking on elements, maximizing web page, navigating to other web pages, and quitting the driver execution.', 'The demonstration includes a step-by-step guide on writing and executing Selenium code using Java and Eclipse IDE, illustrating the use of Selenium jar files, setting up the browser driver, finding web elements using locators such as ID and class name, sending keys, clicking on elements, maximizing web page, navigating to other web pages, and quitting the driver execution.']}, {'end': 7212.683, 'start': 6366.974, 'title': 'Selenium web element locators', 'summary': 'Explains how to use various web element locators in selenium, such as id, name, link text, css selector, and xpath, and demonstrates their usage through practical examples, including navigating to web pages, inspecting elements, and performing actions, emphasizing the importance of choosing the right locator and its impact on test speed, reliability, and maintenance.', 'duration': 845.709, 'highlights': ['The importance of choosing the right locator and its impact on test speed, reliability, and maintenance Emphasizes the significance of selecting the appropriate locator, highlighting its impact on test speed, reliability, and maintenance.', 'Demonstrating the usage of various web element locators through practical examples Illustrates the practical usage of different web element locators, including navigating to web pages, inspecting elements, and performing actions.', 'Explanation and practical demonstration of using ID, name, link text, CSS selector, and XPath locators Explains and demonstrates the practical usage of various locators, such as ID, name, link text, CSS selector, and XPath, through practical examples, including navigating to web pages, inspecting elements, and performing actions.']}, {'end': 7998.478, 'start': 7213.411, 'title': 'Selenium element locators and usage', 'summary': 'Covers how to use css selectors, locate elements using partial link text and xpath, where xpath is used to locate elements in yahoo login page and the preference order for locators is discussed. the chapter also explains the best practices for locators, the types of element locators in selenium, and the importance and syntax of css selectors.', 'duration': 785.067, 'highlights': ['The preference for locators is ID, name, CSS selectors, XPath, link text, and partial link text, in descending order of priority. The chapter discusses the preference order for locators, with ID as the most preferred locator followed by name, CSS selectors, XPath, link text, and partial link text.', 'CSS selector provides a fast method for locating elements compared to XPath, making it one of the most popularly used element locators. The CSS selector is highlighted as providing a faster method for locating elements compared to XPath, thus being one of the most popularly used element locators.', 'Different commands for locating elements using CSS selector include matching partial values, prefixes, suffixes, nested elements, and using the contains method. The chapter explains different commands for locating elements using the CSS selector, such as matching partial values, prefixes, suffixes, nested elements, and using the contains method.', 'XPath is used to locate elements in the Yahoo login page, with absolute and relative XPath, and demonstrated with examples of locating input and button elements. The transcript provides a detailed explanation and examples of using XPath to locate elements in the Yahoo login page, including absolute and relative XPath, and demonstrating the location of input and button elements.', 'The chapter explains best practices for locators, emphasizing the importance of simple and small locators that work even after changing UI element properties. The best practices for locators are explained, emphasizing the importance of simple and small locators that continue to work even after changing UI element properties.']}, {'end': 8615.751, 'start': 7999.139, 'title': 'Css selector automation on ebay', 'summary': 'Demonstrates the process of automating ebay.com using css selectors in selenium, including setting up the project, linking selenium libraries, writing code to find and interact with web elements, and performing additional actions like scrolling through the webpage.', 'duration': 616.612, 'highlights': ['Demonstrating the process of automating ebay.com using CSS selectors in Selenium The chapter provides a detailed demonstration of automating the website ebay.com using CSS selectors in Selenium, showcasing the practical application of CSS selectors in web automation.', 'Setting up the project and linking selenium libraries It covers the process of creating a new project, adding selenium libraries by configuring the build path, and creating a package and class to write the automation code.', 'Writing code to find and interact with web elements It includes writing code to set up the WebDriver, navigate to the webpage, find web elements using CSS selectors, and perform actions like sending keys and clicking on elements.', 'Performing additional actions like scrolling through the webpage The chapter also demonstrates additional actions such as maximizing the webpage, using JavaScript executor to scroll through the page, and interacting with the UI interface.']}], 'duration': 3399.541, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ5216210.jpg', 'highlights': ['The chapter provides a detailed demonstration of automating the website ebay.com using CSS selectors in Selenium, showcasing the practical application of CSS selectors in web automation.', 'The chapter covers various operations performed on web elements in Selenium, including actions on browser, web page, image, text area, checkbox, radio button, drop-down box, list box, combo box, web table, frames, and element locators (e.g. ID, name, class, link text, CSS selector, partial link text, XPath).', 'The chapter delves into the functionality of different web elements, explaining their specific purposes, such as typing in text boxes, navigation through links, interaction with buttons, and more.', 'The preference for locators is ID, name, CSS selectors, XPath, link text, and partial link text, in descending order of priority.', 'The importance of choosing the right locator and its impact on test speed, reliability, and maintenance Emphasizes the significance of selecting the appropriate locator, highlighting its impact on test speed, reliability, and maintenance.']}, {'end': 10052.221, 'segs': [{'end': 9186.858, 'src': 'embed', 'start': 9145.214, 'weight': 1, 'content': [{'end': 9150.016, 'text': "So that's nothing but your types of XPath that is your absolute and relative XPath.", 'start': 9145.214, 'duration': 4.802}, {'end': 9153.697, 'text': 'Absolute XPath is a direct way to find an element,', 'start': 9150.556, 'duration': 3.141}, {'end': 9162.28, 'text': 'but the disadvantage of the absolute XPath is that if there are any changes made in the XPath of the element, then that XPath gets failed, correct?', 'start': 9153.697, 'duration': 8.583}, {'end': 9165.581, 'text': 'So this is your absolute XPath syntax example.', 'start': 9162.64, 'duration': 2.941}, {'end': 9171.783, 'text': 'I just showed you how and relative XPath starts from the middle of the HTML DOM structure.', 'start': 9165.601, 'duration': 6.182}, {'end': 9178.709, 'text': 'It starts with the double forward slash, which means it can search the element anywhere at the web page, correct?', 'start': 9172.103, 'duration': 6.606}, {'end': 9183.874, 'text': 'So what does a single slash means if it is used inside the XPath?', 'start': 9179.249, 'duration': 4.625}, {'end': 9185.276, 'text': "So let's see that now.", 'start': 9184.275, 'duration': 1.001}, {'end': 9186.858, 'text': "So let's take an example.", 'start': 9185.596, 'duration': 1.262}], 'summary': 'Types of xpath: absolute and relative. absolute xpath is direct, but changes can cause failure. relative xpath starts from the middle of html dom structure, using double forward slash.', 'duration': 41.644, 'max_score': 9145.214, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ9145214.jpg'}, {'end': 9599.247, 'src': 'embed', 'start': 9571.829, 'weight': 0, 'content': [{'end': 9580.576, 'text': 'this function is used to find a web element whose value of attribute changes on the refresh or on any dynamic operation on the webpage.', 'start': 9571.829, 'duration': 8.747}, {'end': 9589.481, 'text': 'In this we match the starting text of the attribute that is used to locate an element whose attribute has changed dynamically.', 'start': 9581.216, 'duration': 8.265}, {'end': 9599.247, 'text': 'for example, on the web page, ID of a particular element changes dynamically, like ID 1, ID 2, ID 3, but the text remains same.', 'start': 9589.481, 'duration': 9.766}], 'summary': 'Function locates web element by matching starting text of dynamic attribute value.', 'duration': 27.418, 'max_score': 9571.829, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ9571829.jpg'}], 'start': 8615.751, 'title': 'Using css selectors and xpath in selenium', 'summary': 'Covers the usage of css selectors and xpath in selenium, including examples of locating elements using class, tag, and partial text, along with an explanation of xpath as a language for querying xml documents. it also explains the structure of an xml document and xpath queries, highlighting benefits of xpath and providing a practical example of using xpath to locate an element on a web page. additionally, it introduces the concepts of absolute and relative xpath, explaining their differences and usage, and delves into xpath functions automation using selenium.', 'chapters': [{'end': 8770.459, 'start': 8615.751, 'title': 'Css selectors and xpath in selenium', 'summary': 'Covers the usage of css selectors and xpath in selenium, including examples of locating elements using class, tag, and partial text, along with an explanation of xpath as a language for querying xml documents.', 'duration': 154.708, 'highlights': ['The dot operator helps in specifying the class of the particular element, demonstrated by locating a span element using the dot command.', 'The star operator in CSS selector is used to locate elements by specifying a tag followed by the locator class and an asterisk, illustrated by specifying an element location using item price and its variation.', 'XPath, also known as XML path, is a language for querying XML documents and is an important strategy to locate elements in Selenium, demonstrated by explaining its structure and usage.', 'Explanation of using carrot or dollar symbol for searching element bytes prefix or suffix in CSS selectors.', 'Demonstration of using partial text link and inspecting elements in a webpage to locate specific elements in Selenium.']}, {'end': 9098.785, 'start': 8770.459, 'title': 'Understanding xpath and its practical application', 'summary': 'Explains the structure of an xml document and xpath queries, highlighting benefits of xpath and providing a practical example of using xpath to locate an element on a web page. it also emphasizes the simplicity and compactness of xpath queries.', 'duration': 328.326, 'highlights': ['The chapter highlights the structure of an XML document, explaining the tree-like hierarchy and the use of XPath to locate specific elements, providing a practical example of locating an element on a web page using XPath.', 'The benefits of XPath queries are emphasized, stating that they are compact, easily parsed, and easy to read and type, and do not return repeated nodes.', 'The syntax of XPath queries is explained, demonstrating the use of front slash to select the current node, tag names to identify elements, and ampersand to select attributes, with practical application shown through locating an element on a web page using XPath.', 'The process of constructing XPath queries to locate specific elements on a web page is demonstrated, emphasizing the use of tag names and attributes to uniquely identify elements.', 'The use of XPath to locate elements on a web page is illustrated, showing the construction of XPath queries based on tag names and attributes, and the explanation of path expressions to uniquely identify elements.']}, {'end': 9425.868, 'start': 9099.365, 'title': 'Learning xpath and xpath functions', 'summary': "Introduces the concepts of absolute and relative xpath, explaining their differences and usage, and then delves into xpath functions automation using selenium, emphasizing the use of functions like 'contains' for dynamic attribute values.", 'duration': 326.503, 'highlights': ['The chapter introduces the concepts of absolute and relative XPath, explaining their differences and usage The chapter explains the differences between single and double front slashes in XPath, with the former instructing the XPath engine to start from the root node and the latter instructing it to search anywhere in the XML document. It also discusses the advantages and disadvantages of absolute and relative XPath, highlighting that absolute XPath is a direct way to find an element but may fail if there are changes in the XPath of the element.', "XPath functions automation using Selenium, emphasizing the use of functions like 'contains' for dynamic attribute values The transcript discusses the challenges of identifying elements with the same attributes on a webpage and introduces XPath functions as a solution. It specifically highlights the 'contains' method as being useful for handling dynamically changing attribute values, such as login information."]}, {'end': 10052.221, 'start': 9426.348, 'title': 'Locating web elements with xpath', 'summary': 'Explains how to locate web elements using xpath, including examples of using partial values, contains function, starts with function, text function, using two functions together, or operation, registering drivers for chrome and mozilla, and sending keys to search the element using eclipse.', 'duration': 625.873, 'highlights': ['Explaining how to locate web elements using XPath, including examples of using partial values, contains function, starts with function, text function, using two functions together, or operation. The chapter covers various techniques for locating web elements using XPath, such as using partial values, contains function, starts with function, text function, using two functions together, and or operation.', 'Demonstrating the process of registering drivers for Chrome and Mozilla, and sending keys to search the element using Eclipse. The transcript demonstrates the registration of drivers for Chrome and Mozilla, as well as the process of sending keys to search elements using Eclipse.', "Guiding on finding XPath of a particular element using Chrome. The chapter provides guidance on finding the XPath of a particular element using Chrome by using the 'crow path' tool."]}], 'duration': 1436.47, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ8615751.jpg', 'highlights': ['XPath, also known as XML path, is a language for querying XML documents and is an important strategy to locate elements in Selenium, demonstrated by explaining its structure and usage.', 'The benefits of XPath queries are emphasized, stating that they are compact, easily parsed, and easy to read and type, and do not return repeated nodes.', 'The chapter introduces the concepts of absolute and relative XPath, explaining their differences and usage The chapter explains the differences between single and double front slashes in XPath, with the former instructing the XPath engine to start from the root node and the latter instructing it to search anywhere in the XML document. It also discusses the advantages and disadvantages of absolute and relative XPath, highlighting that absolute XPath is a direct way to find an element but may fail if there are changes in the XPath of the element.', "XPath functions automation using Selenium, emphasizing the use of functions like 'contains' for dynamic attribute values The transcript discusses the challenges of identifying elements with the same attributes on a webpage and introduces XPath functions as a solution. It specifically highlights the 'contains' method as being useful for handling dynamically changing attribute values, such as login information."]}, {'end': 12288.342, 'segs': [{'end': 10084.899, 'src': 'embed', 'start': 10052.801, 'weight': 13, 'content': [{'end': 10056.183, 'text': 'So this is my relative and this is my absolute crow path.', 'start': 10052.801, 'duration': 3.382}, {'end': 10065.108, 'text': 'So when you inspect any element here, you can see the crow path, which gives you both relative and absolute crow path of that particular element.', 'start': 10056.663, 'duration': 8.445}, {'end': 10066.489, 'text': 'sounds much easier, right?', 'start': 10065.108, 'duration': 1.381}, {'end': 10074.354, 'text': 'What is selenium weights?', 'start': 10072.813, 'duration': 1.541}, {'end': 10079.136, 'text': 'weights help the user to troubleshoot issues while redirecting to different web pages,', 'start': 10074.354, 'duration': 4.782}, {'end': 10084.899, 'text': 'and this is achieved by refreshing the entire web page and reloading the new web elements at times.', 'start': 10079.136, 'duration': 5.763}], 'summary': 'Tool provides relative and absolute crow path, helps troubleshoot page redirection with weights.', 'duration': 32.098, 'max_score': 10052.801, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ10052801.jpg'}, {'end': 10186.773, 'src': 'embed', 'start': 10162.182, 'weight': 16, 'content': [{'end': 10167.985, 'text': 'Suppose we are trying to find an element which has some expected conditions that is your explicit weight.', 'start': 10162.182, 'duration': 5.803}, {'end': 10172.787, 'text': 'If the element is not located within the time frame defined by the explicit weight,', 'start': 10168.305, 'duration': 4.482}, {'end': 10178.369, 'text': 'it will use the time frame defined by the implicit weight before throwing an element, not visible exception.', 'start': 10172.787, 'duration': 5.582}, {'end': 10186.773, 'text': "So these are the situations where weights are essential in automation testing now, let's move further and understand different types of weights.", 'start': 10179.009, 'duration': 7.764}], 'summary': 'Weights play a critical role in automation testing, with explicit and implicit time frames for element location.', 'duration': 24.591, 'max_score': 10162.182, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ10162182.jpg'}, {'end': 10343.811, 'src': 'embed', 'start': 10317.118, 'weight': 15, 'content': [{'end': 10325.564, 'text': 'So what are dynamic weights consider the situation where you have given timeout as 40 seconds, which is the maximum time allocated.', 'start': 10317.118, 'duration': 8.446}, {'end': 10331.226, 'text': 'If the element will get loaded in 5 seconds, then the rest of 35 seconds will be ignored.', 'start': 10326.204, 'duration': 5.022}, {'end': 10338.809, 'text': "It won't wait till 40 seconds and that's why all weights are set to be dynamic weights one more syntax here.", 'start': 10331.686, 'duration': 7.123}, {'end': 10343.811, 'text': 'I will use driver dot manage or timeouts dot implicitly wait.', 'start': 10338.829, 'duration': 4.982}], 'summary': 'Dynamic weights optimize wait times, ignoring excess time. implement with driver.manage().timeouts().implicitlywait().', 'duration': 26.693, 'max_score': 10317.118, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ10317118.jpg'}, {'end': 11186.975, 'src': 'embed', 'start': 11144.159, 'weight': 9, 'content': [{'end': 11151.562, 'text': 'and it is recommended to use implicit weight when the elements are located within the time frame that is specified an implicit weight.', 'start': 11144.159, 'duration': 7.403}, {'end': 11152.423, 'text': 'on the other hand,', 'start': 11151.562, 'duration': 0.861}, {'end': 11160.746, 'text': 'it is recommended to use explicit weight when the elements are taking long time to load and also for verifying the property of the element,', 'start': 11152.423, 'duration': 8.323}, {'end': 11166.188, 'text': 'like visibility of the element located, element to be clickable, element to be selected, Etc.', 'start': 11160.746, 'duration': 5.442}, {'end': 11170.79, 'text': 'So these are the differences between implicit and explicit weights next.', 'start': 11166.689, 'duration': 4.101}, {'end': 11172.331, 'text': 'What are fluent weights?', 'start': 11171.411, 'duration': 0.92}, {'end': 11177.353, 'text': 'Fluent wait is used to tell the web driver to wait for a condition,', 'start': 11173.012, 'duration': 4.341}, {'end': 11184.935, 'text': 'as well as the frequency with which we want to check the condition before throwing an element not visible exception.', 'start': 11177.353, 'duration': 7.582}, {'end': 11186.975, 'text': 'when using the fluent wait instance,', 'start': 11184.935, 'duration': 2.04}], 'summary': 'Use implicit weight for elements within specified time frame, explicit weight for verifying properties, and fluent wait for conditions and frequency.', 'duration': 42.816, 'max_score': 11144.159, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ11144159.jpg'}, {'end': 11644.794, 'src': 'embed', 'start': 11610.073, 'weight': 11, 'content': [{'end': 11612.094, 'text': 'I have the latest Eclipse ID guys.', 'start': 11610.073, 'duration': 2.021}, {'end': 11613.615, 'text': 'So just going to click on it.', 'start': 11612.475, 'duration': 1.14}, {'end': 11617.678, 'text': 'Launch the workspace.', 'start': 11616.617, 'duration': 1.061}, {'end': 11624.582, 'text': 'Okay, so this is the Eclipse workspace guys.', 'start': 11622.361, 'duration': 2.221}, {'end': 11627.704, 'text': 'So first we need to create a new Java project.', 'start': 11625.002, 'duration': 2.702}, {'end': 11633.688, 'text': "So for that I'm going to click on file click on new and Java project.", 'start': 11628.746, 'duration': 4.942}, {'end': 11638.931, 'text': "I'm going to name this as selenium alerts click on finish.", 'start': 11634.429, 'duration': 4.502}, {'end': 11644.794, 'text': 'So you can see that the folder is being created by the name selenium alerts.', 'start': 11640.932, 'duration': 3.862}], 'summary': 'Creating a new java project named selenium alerts in eclipse id.', 'duration': 34.721, 'max_score': 11610.073, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ11610073.jpg'}, {'end': 12060.292, 'src': 'embed', 'start': 11982.327, 'weight': 1, 'content': [{'end': 11988.77, 'text': "So to do that, I'm going to print this system dot out dot println.", 'start': 11982.327, 'duration': 6.443}, {'end': 11998.735, 'text': "I'm going to print this and pause the execution for a few seconds.", 'start': 11994.113, 'duration': 4.622}, {'end': 12002.357, 'text': "So first, let's run this program.", 'start': 12000.456, 'duration': 1.901}, {'end': 12015.342, 'text': "Okay, you can see that this was quick and I'm going to close this is going to print.", 'start': 12009.821, 'duration': 5.521}, {'end': 12017.283, 'text': 'This is a selenium alert box.', 'start': 12015.362, 'duration': 1.921}, {'end': 12018.943, 'text': 'So this was quick right guys.', 'start': 12017.463, 'duration': 1.48}, {'end': 12025.785, 'text': "So in order to pause the execution for a few seconds, I'm going to add the threat command after the page is loaded.", 'start': 12019.363, 'duration': 6.422}, {'end': 12031.806, 'text': 'Sleep For three seconds.', 'start': 12028.205, 'duration': 3.601}, {'end': 12034.795, 'text': 'Now say you want to maximize the screen.', 'start': 12032.714, 'duration': 2.081}, {'end': 12048.985, 'text': "So first I'm going to type the object of the web driver manage the window and maximize so this command helps in maximizing the window.", 'start': 12035.296, 'duration': 13.689}, {'end': 12051.266, 'text': "So let's execute this program.", 'start': 12049.605, 'duration': 1.661}, {'end': 12060.292, 'text': 'Maximizes it after three seconds.', 'start': 12057.811, 'duration': 2.481}], 'summary': 'Program prints message, pauses, runs quickly, maximizes window after 3 seconds.', 'duration': 77.965, 'max_score': 11982.327, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ11982327.jpg'}, {'end': 12118.731, 'src': 'embed', 'start': 12092.651, 'weight': 0, 'content': [{'end': 12099.415, 'text': 'Maximizes it after three seconds clicks on the display alert and after three seconds, it clicks on the accept button.', 'start': 12092.651, 'duration': 6.764}, {'end': 12101.857, 'text': 'Hope this was clear to you guys.', 'start': 12100.456, 'duration': 1.401}, {'end': 12107.742, 'text': "Now, how do you handle the pop-up button? Let's take a look at our web page.", 'start': 12102.757, 'duration': 4.985}, {'end': 12112.126, 'text': "Now, let's see how you can handle a pop-up while testing an application.", 'start': 12108.422, 'duration': 3.704}, {'end': 12118.731, 'text': "So I'm just going to click on this so you can see another window is being embedded within the current window.", 'start': 12112.626, 'duration': 6.105}], 'summary': 'Demonstrates handling pop-up buttons on a web page during application testing.', 'duration': 26.08, 'max_score': 12092.651, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ12092651.jpg'}, {'end': 12170.343, 'src': 'embed', 'start': 12139.902, 'weight': 3, 'content': [{'end': 12148.627, 'text': "So first I'm going to add the thread command so that it pauses the execution for a few seconds before the other function starts,", 'start': 12139.902, 'duration': 8.725}, {'end': 12155.53, 'text': "and next I'm going to find the element by its ID.", 'start': 12148.627, 'duration': 6.903}, {'end': 12160.276, 'text': 'and specify the ID over here and it is a button.', 'start': 12156.994, 'duration': 3.282}, {'end': 12162.057, 'text': "So I'm going to click the button.", 'start': 12160.316, 'duration': 1.741}, {'end': 12164.579, 'text': "Okay, so let's go back to our webpage.", 'start': 12162.077, 'duration': 2.502}, {'end': 12170.343, 'text': 'So once you click this button the window pops up to handle this window.', 'start': 12164.999, 'duration': 5.344}], 'summary': 'Adding thread command for pause, finding element by id, and clicking a button on a webpage.', 'duration': 30.441, 'max_score': 12139.902, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ12139902.jpg'}, {'end': 12255.965, 'src': 'embed', 'start': 12221.337, 'weight': 4, 'content': [{'end': 12225.299, 'text': "So I'm going to specify the y-axis as 5 or 10 and the x-axis as 500 or a 400.", 'start': 12221.337, 'duration': 3.962}, {'end': 12227.041, 'text': "So let's see how this can be done.", 'start': 12225.299, 'duration': 1.742}, {'end': 12234.414, 'text': 'robot dot mouse move.', 'start': 12231.232, 'duration': 3.182}, {'end': 12241.858, 'text': "So I'm going to be considering the x-axis as a 400 and y-axis as a 5.", 'start': 12235.334, 'duration': 6.524}, {'end': 12244.619, 'text': "Let's see where this comes up run this program.", 'start': 12241.858, 'duration': 2.761}, {'end': 12253.764, 'text': 'Maximizes it clicks on the alert clicks on accept and clicks on the pop-up button.', 'start': 12247.961, 'duration': 5.803}, {'end': 12255.965, 'text': 'The axis is correct.', 'start': 12254.864, 'duration': 1.101}], 'summary': 'Robot program maximizes and clicks with specified x and y-axis values.', 'duration': 34.628, 'max_score': 12221.337, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ12221337.jpg'}], 'start': 10052.801, 'title': 'Selenium webdriver', 'summary': 'Covers the importance and usage of implicit and explicit weights, the syntax and application of implicit and explicit waits in selenium webdriver, automation actions using selenium webdriver, and methods for handling alerts and alert boxes in selenium webdriver.', 'chapters': [{'end': 10199.45, 'start': 10052.801, 'title': 'Selenium weights: importance and usage', 'summary': 'Discusses the importance of implicit and explicit weights in selenium, the need for weights due to web applications using ajax and javascript, and the resolution of element identification issues through weights, with a scenario highlighting the use of both implicit and explicit weights.', 'duration': 146.649, 'highlights': ['Implicit and explicit weights are essential in automation testing, as they help in resolving element identification issues in web applications using Ajax and JavaScript, with a scenario demonstrating the use of both types of weights.', 'The need for weights in selenium arises from the fact that most web applications are developed using Ajax and JavaScript, leading to elements loading at different time intervals, making it difficult to identify them and potentially resulting in element not visible exceptions.', 'The chapter explains the importance and usage of implicit and explicit weights in selenium, emphasizing their significance in resolving issues related to locating web elements during automation testing.']}, {'end': 10653.028, 'start': 10200.1, 'title': 'Implicit and explicit waits in selenium', 'summary': 'Explains the usage and syntax of implicit and explicit waits in selenium webdriver, where implicit wait is set to 40 seconds and applied globally, while explicit wait is dynamically used for specific conditions.', 'duration': 452.928, 'highlights': ['Implicit wait is set to 40 seconds and applied globally The chapter explains how to set an implicit wait of 40 seconds using driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS), applying the wait globally to all web elements throughout the driver instance.', 'Dynamic nature of implicit wait, ignoring remaining time if element is found earlier It is highlighted that implicit waits are dynamic, and if an element is located before the specified time, the remaining time is ignored, making implicit waits dynamic and efficient.', 'Usage of explicit wait for specific conditions The chapter emphasizes the importance of explicit waits in scenarios where specific conditions need to be dynamically waited for before proceeding, such as waiting for specific elements to load in a dynamic web page.']}, {'end': 11312.643, 'start': 10654.426, 'title': 'Selenium webdriver automation', 'summary': 'Explains the use of selenium webdriver to perform actions like entering text, creating utility functions for explicit wait, and using implicit and explicit waits, with examples and recommendations for best practices.', 'duration': 658.217, 'highlights': ['The chapter explains the use of Selenium WebDriver to perform actions like entering text, creating utility functions for explicit wait, and using implicit and explicit waits It covers the process of setting up elements, creating utility functions, and using explicit and implicit waits, providing practical examples and best practices.', 'Implicit wait is a global wait and is not recommended to be used with explicit wait Explains the implications and best practices of using implicit and explicit waits together, highlighting the drawbacks and recommending avoiding their simultaneous use.', 'Fluent wait is used to specify the frequency with which conditions are checked and the maximum amount of time to wait for a condition Describes the concept and usage of fluent wait, including specifying timeout and polling frequency, and provides an example of its implementation with practical code.']}, {'end': 11731.215, 'start': 11312.643, 'title': 'Handling alerts in selenium', 'summary': 'Discusses the challenges and methods of handling alerts in selenium, covering types of alerts, methods to handle them, and prerequisites for working with alerts in selenium.', 'duration': 418.572, 'highlights': ['The chapter discusses the challenges and methods of handling alerts in Selenium. Provides an overview of the main topic of the chapter.', 'Types of alerts include simple alert, prompt alert, and confirmation alert. Explains the different types of alerts that can be encountered while testing an application.', 'Methods to handle alerts include dismiss, accept, get text, and send keys. Details the methods available to handle alerts, such as dismissing, accepting, retrieving text, and sending input.', 'Prerequisites for working with alerts in Selenium include the latest version of Java and the Eclipse IDE. Lists the essential prerequisites, emphasizing the need for the latest Java version and the Eclipse IDE for working with alerts in Selenium.']}, {'end': 12288.342, 'start': 11733.676, 'title': 'Selenium webdriver: chrome driver setup and handling alert boxes', 'summary': 'Demonstrates the setup of chrome driver, handling alert boxes, and pop-up windows using selenium webdriver with detailed steps and code snippets, achieving tasks such as locating elements, switching control, getting text from alert windows, and handling pop-up windows.', 'duration': 554.666, 'highlights': ['The chapter demonstrates the setup of Chrome driver for Selenium WebDriver, including setting the system property and instantiating the browser driver with the new Chrome driver.', 'The detailed steps for handling alert boxes in Selenium WebDriver, including locating the alert box element, pausing execution, switching control to the alert window, getting the text from the alert window, and printing the text message, are provided.', 'Instructions for maximizing the screen and clicking the OK button on the alert window using Selenium WebDriver are included, with the corresponding code snippets and execution results.', 'Detailed steps for handling pop-up windows in Selenium WebDriver, including locating the pop-up button element, pausing execution, handling the pop-up window with the mouse hover function using the robot class, and performing mouse press and release functions, are outlined.']}], 'duration': 2235.541, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ10052801.jpg', 'highlights': ['Implicit and explicit weights are essential in automation testing, resolving element identification issues in web applications using Ajax and JavaScript.', 'The need for weights in selenium arises from most web applications being developed using Ajax and JavaScript, leading to elements loading at different time intervals.', 'The chapter explains the importance and usage of implicit and explicit weights in selenium, emphasizing their significance in resolving issues related to locating web elements during automation testing.', 'Implicit wait is set to 40 seconds and applied globally using driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS).', 'Implicit waits are dynamic, ignoring remaining time if an element is found earlier, making them efficient.', 'The chapter emphasizes the importance of explicit waits in scenarios where specific conditions need to be dynamically waited for before proceeding.', 'The chapter explains the use of Selenium WebDriver to perform actions like entering text, creating utility functions for explicit wait, and using implicit and explicit waits.', 'Implicit wait is a global wait and is not recommended to be used with explicit wait, highlighting the drawbacks and recommending avoiding their simultaneous use.', 'Fluent wait is used to specify the frequency with which conditions are checked and the maximum amount of time to wait for a condition.', 'The chapter discusses the challenges and methods of handling alerts in Selenium.', 'Types of alerts include simple alert, prompt alert, and confirmation alert.', 'Methods to handle alerts include dismiss, accept, get text, and send keys.', 'Prerequisites for working with alerts in Selenium include the latest version of Java and the Eclipse IDE.', 'The chapter demonstrates the setup of Chrome driver for Selenium WebDriver, including setting the system property and instantiating the browser driver with the new Chrome driver.', 'The detailed steps for handling alert boxes in Selenium WebDriver, including locating the alert box element, pausing execution, switching control to the alert window, getting the text from the alert window, and printing the text message, are provided.', 'Instructions for maximizing the screen and clicking the OK button on the alert window using Selenium WebDriver are included.', 'Detailed steps for handling pop-up windows in Selenium WebDriver, including locating the pop-up button element, pausing execution, handling the pop-up window with the mouse hover function using the robot class, and performing mouse press and release functions, are outlined.']}, {'end': 14358.471, 'segs': [{'end': 14128.744, 'src': 'embed', 'start': 14104.754, 'weight': 4, 'content': [{'end': 14114.095, 'text': "I think you guys have understood what on finish function does So once you call this onFinish function, I'm going to pass the attribute I test context.", 'start': 14104.754, 'duration': 9.341}, {'end': 14123.301, 'text': 'So what does the I test context do this class defines the test context which contains all information for a given test run.', 'start': 14114.315, 'duration': 8.986}, {'end': 14128.744, 'text': "So I'm going to specify the result along with it and create a constructor of the same,", 'start': 14123.941, 'duration': 4.803}], 'summary': 'The onfinish function passes the test context attribute and specifies the result for a given test run.', 'duration': 23.99, 'max_score': 14104.754, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14104754.jpg'}, {'end': 14183.552, 'src': 'embed', 'start': 14151.67, 'weight': 3, 'content': [{'end': 14156.293, 'text': "now say, you want a function to be called when it's failed or skipped or started.", 'start': 14151.67, 'duration': 4.623}, {'end': 14166.017, 'text': 'So we use the on test failure command and specify the attribute I test result, which holds the result of the on test failure,', 'start': 14156.889, 'duration': 9.128}, {'end': 14175.265, 'text': "and I'm going to print this particular command, which says the name of the test case failed by specifying the name of the test case that failed.", 'start': 14166.017, 'duration': 9.248}, {'end': 14183.552, 'text': 'after this say, you want to specify the test that was skipped, so you can specify it using the on test skipped command.', 'start': 14175.265, 'duration': 8.287}], 'summary': 'Using on test failure and on test skipped commands to specify actions for failed or skipped tests.', 'duration': 31.882, 'max_score': 14151.67, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14151670.jpg'}, {'end': 14227.679, 'src': 'embed', 'start': 14197.879, 'weight': 2, 'content': [{'end': 14202.882, 'text': 'get name and after this say you want to call a function which specifies the start operation.', 'start': 14197.879, 'duration': 5.003}, {'end': 14208.825, 'text': "So I'm going to use the on test start function, which is called every time the test case starts.", 'start': 14203.402, 'duration': 5.423}, {'end': 14212.912, 'text': "Okay, and under this I'm going to print this command here,", 'start': 14209.286, 'duration': 3.626}, {'end': 14220.496, 'text': 'which specifies the test is started and after the execution of the program now say you want to specify the success of the test.', 'start': 14212.912, 'duration': 7.584}, {'end': 14227.679, 'text': 'So using this on test success function we can specify if the test case was successful or not.', 'start': 14221.056, 'duration': 6.623}], 'summary': "Using 'on test start' and 'on test success' functions to specify test operations and outcomes.", 'duration': 29.8, 'max_score': 14197.879, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14197879.jpg'}, {'end': 14370.615, 'src': 'embed', 'start': 14336.238, 'weight': 0, 'content': [{'end': 14339.7, 'text': 'You can see that the ID is present which is the CSS selector.', 'start': 14336.238, 'duration': 3.462}, {'end': 14350.668, 'text': 'So just copy this ID and go back to our project and specify the ID that is this repeat and specify the CSS selector using the find element function.', 'start': 14340.361, 'duration': 10.307}, {'end': 14355.41, 'text': 'do note that CSS selector always starts with the symbol.', 'start': 14351.488, 'duration': 3.922}, {'end': 14358.471, 'text': 'So if the ID is present hash is used.', 'start': 14355.85, 'duration': 2.621}, {'end': 14370.615, 'text': "So I've specified the hash before the value of the element and I'm going to send keys to the particular location that is test automation engineer masters program and click the search button.", 'start': 14358.931, 'duration': 11.684}], 'summary': 'Use css selector with id to locate element and perform action.', 'duration': 34.377, 'max_score': 14336.238, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14336238.jpg'}], 'start': 12289.964, 'title': 'Selenium webdriver and testng listeners', 'summary': 'Covers handling selenium alerts and exceptions, discussing 5 types of webdriver exceptions, implementing selenium listeners, and automating web browser actions using selenium webdriver. it emphasizes the importance of exception handling and provides implementation examples in java using eclipse ide and webdriver.', 'chapters': [{'end': 12565.861, 'start': 12289.964, 'title': 'Handling selenium alert and exceptions', 'summary': 'Discusses how to handle alerts and exceptions in selenium, including their application areas, such as banking and e-commerce, and explains the hierarchy and types of exceptions. it also emphasizes the importance of handling exceptions and highlights the differences between checked and unchecked exceptions.', 'duration': 275.897, 'highlights': ['Alerts are used mainly in the field of banking and e-commerce websites like Amazon, Flipkart, Snapdeal. The application areas for alerts are in banking and e-commerce websites like Amazon, Flipkart, and Snapdeal.', "Exceptions are events that disrupt the normal flow of the program's instructions and occur during the execution of the program. Exceptions disrupt the normal flow of a program and occur during its execution.", 'There are two types of exceptions: checked and unchecked. Checked exceptions are verified by the compiler at the time of compilation, while unchecked exceptions occur at the time of execution. Two types of exceptions exist: checked and unchecked. Checked exceptions are verified during compilation, while unchecked exceptions occur during execution.']}, {'end': 13183.604, 'start': 12566.701, 'title': 'Types of webdriver exceptions & handling', 'summary': 'Discusses five types of webdriver exceptions, such as no such element, no such frame, no alert present, timeout, and no such window, and demonstrates handling these exceptions using try-catch blocks and explaining the methods to handle exceptions including try, catch, throw, throws, and finally.', 'duration': 616.903, 'highlights': ['Handling No Such Element Exception Using try-catch blocks, the chapter demonstrates handling the no such element exception by catching it and ensuring the normal flow of execution is not interrupted.', 'Methods to Handle Exceptions The chapter explains the methods to handle exceptions, including try, catch, throw, throws, and finally, highlighting their specific use cases and significance in exception handling.', 'Demonstrating Throw Exception The chapter demonstrates the use of throw to forcefully throw an exception, irrespective of whether the catch block handles it or not, emphasizing its behavior in exception handling.', 'Understanding Throws Declaration The chapter explains the use of throws to declare exceptions, illustrating its necessity when using statements like thread.sleep to continue with the normal flow of execution.', 'Handling No Such Alert Exception The chapter demonstrates handling the no such alert exception using try-catch blocks and printing the stack trace, emphasizing the behavior of this exception in selenium web driver.']}, {'end': 13596.124, 'start': 13183.604, 'title': 'Selenium listeners and their implementation', 'summary': 'Discusses the role of listeners in selenium, including their definition, purpose, and different types. it explains the implementation process of web driver listeners, emphasizing the use case and necessary java and testng libraries.', 'duration': 412.52, 'highlights': ['Listeners are interfaces that modify the default behavior of the program and are used in Selenium for creating logs and reports. Listeners in Selenium are interfaces that modify the default behavior of the program and are primarily used to create logs and reports.', 'There are two types of listeners: web driver listener and TestNG listeners. Two types of listeners exist in Selenium: web driver listener and TestNG listeners.', 'Event Firing WebDriver and WebDriver Event Listener are the two events that help in capturing WebDriver events. Event Firing WebDriver and WebDriver Event Listener are the two events that aid in capturing WebDriver events.', 'The Event Capture program showcases the implementation of Web Driver Event Listener by explaining the methods and their corresponding events. The Event Capture program demonstrates the implementation of Web Driver Event Listener by elucidating the methods and their associated events.']}, {'end': 14005.668, 'start': 13596.764, 'title': 'Selenium webdriver automation', 'summary': 'Introduces selenium webdriver and demonstrates how to automate web browser actions using selenium webdriver, including setting up the browser property, creating objects of web driver, javascript executor, and event firing web driver, navigating web pages, scrolling through a page, finding elements, and using testng listeners to customize reports and logs.', 'duration': 408.904, 'highlights': ['Automating browser actions using Selenium WebDriver The chapter demonstrates how to automate browser actions using Selenium WebDriver, including setting up the browser property, creating objects of web driver, JavaScript executor, and event firing web driver, navigating web pages, scrolling through a page, finding elements, and using TestNG listeners.', 'Navigating web pages and scrolling through a page The transcript provides code examples and explanations on navigating to specific web pages, scrolling through a page using JavaScript executor, and waiting for a specified time, with a clear demonstration of these actions using Selenium WebDriver.', 'Using TestNG listeners to customize reports and logs The chapter explains the significance of TestNG listeners in customizing reports and logs of executed programs, and lists the types of listeners used in Selenium, and emphasizes working mainly on the eye test listeners.']}, {'end': 14358.471, 'start': 14006.369, 'title': 'Implementing testng listeners in java', 'summary': 'Explains the usage of testng listeners including methods like on start, on test success, on test failure, and on test skipped with the implementation example in java using eclipse ide and webdriver.', 'duration': 352.102, 'highlights': ['TestNG listeners methods and their usage explained The transcript provides an explanation of methods like on start, on test success, on test failure, and on test skipped, demonstrating their usage in implementing TestNG listeners.', 'Implementation example of TestNG listeners in Java using Eclipse IDE and WebDriver The transcript includes an implementation example demonstrating the use of TestNG listeners in Java using Eclipse IDE and WebDriver, providing practical insights for the audience.', 'Usage of ITestListener and its methods in the implementation example The usage of ITestListener interface and its methods like on start, on finish, on test failure, and on test skipped is demonstrated in the implementation example, offering a comprehensive understanding of their application.']}], 'duration': 2068.507, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ12289964.jpg', 'highlights': ['Automating browser actions using Selenium WebDriver, including setting up the browser property, creating objects of web driver, JavaScript executor, and event firing web driver, navigating web pages, scrolling through a page, finding elements, and using TestNG listeners.', 'Implementation example of TestNG listeners in Java using Eclipse IDE and WebDriver, providing practical insights for the audience.', 'Handling No Such Element Exception Using try-catch blocks, the chapter demonstrates handling the no such element exception by catching it and ensuring the normal flow of execution is not interrupted.', 'Exceptions disrupt the normal flow of a program and occur during its execution.', 'Listeners in Selenium are interfaces that modify the default behavior of the program and are primarily used to create logs and reports.']}, {'end': 15719.954, 'segs': [{'end': 14631.464, 'src': 'embed', 'start': 14605.271, 'weight': 1, 'content': [{'end': 14609.933, 'text': 'parameterization and sequencing techniques in the code, which was not possible earlier.', 'start': 14605.271, 'duration': 4.662}, {'end': 14617.032, 'text': 'Besides managing the test cases, even detailed reports of tests can be obtained by using test ng,', 'start': 14610.626, 'duration': 6.406}, {'end': 14625.299, 'text': 'and there will be a summary displaying the test case that has failed, along with the group which it was part of and the class that it falls under,', 'start': 14617.032, 'duration': 8.267}, {'end': 14627.941, 'text': 'when bugs can be accurately located like this.', 'start': 14625.299, 'duration': 2.642}, {'end': 14631.464, 'text': 'They can be fixed immediately to the relief of developers.', 'start': 14628.421, 'duration': 3.043}], 'summary': 'Testng enables parameterization and sequencing, providing detailed reports for failed test cases, which aids in accurate bug localization and immediate fixes.', 'duration': 26.193, 'max_score': 14605.271, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14605271.jpg'}, {'end': 14717.156, 'src': 'embed', 'start': 14691.801, 'weight': 3, 'content': [{'end': 14697.425, 'text': 'and multiple test cases can be grouped more easily by converting them into testng.xml file.', 'start': 14691.801, 'duration': 5.624}, {'end': 14705.814, 'text': 'In this you can make the priorities as to which test cases should be executed first and which after that and using test energy.', 'start': 14698.132, 'duration': 7.682}, {'end': 14708.774, 'text': 'You can execute multiple test cases on multiple browsers.', 'start': 14705.834, 'duration': 2.94}, {'end': 14717.156, 'text': 'That is it supports cross browser testing and test energy can also be integrated with frameworks like Maven Jenkins, etc.', 'start': 14708.814, 'duration': 8.342}], 'summary': 'Testng.xml allows grouping test cases, setting priorities, and executing on multiple browsers for cross-browser testing. it can integrate with frameworks like maven and jenkins.', 'duration': 25.355, 'max_score': 14691.801, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14691801.jpg'}, {'end': 14763.402, 'src': 'embed', 'start': 14733.095, 'weight': 0, 'content': [{'end': 14736.478, 'text': 'So here annotations are easier to understand.', 'start': 14733.095, 'duration': 3.383}, {'end': 14742.644, 'text': 'annotations in test and G are the lines of code that control how the method below them will be executed,', 'start': 14736.478, 'duration': 6.166}, {'end': 14745.567, 'text': 'and they are always preceded by the at symbol.', 'start': 14742.644, 'duration': 2.923}, {'end': 14752.293, 'text': 'So you can see, you can set your priorities, like you can set the priority to 0 and you can set the priority to 1.', 'start': 14745.987, 'duration': 6.306}, {'end': 14752.893, 'text': 'and also,', 'start': 14752.293, 'duration': 0.6}, {'end': 14763.402, 'text': 'if you want to execute some of the test cases before the test that should be followed by at before annotation and the test that have to be executing during the test with at test annotation,', 'start': 14752.893, 'duration': 10.509}], 'summary': 'Annotations in code control execution, with options to set priorities to 0 or 1. test cases can be executed before or during tests.', 'duration': 30.307, 'max_score': 14733.095, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14733095.jpg'}], 'start': 14358.931, 'title': 'Test automation with testng', 'summary': 'Covers automated test scripting basics in selenium, understanding testng listeners, advantages of testng over junit, and testng annotations in selenium, including their use and execution flow.', 'chapters': [{'end': 14403.887, 'start': 14358.931, 'title': 'Automated test scripting basics', 'summary': 'Covers the basics of writing an automated test script, including specifying hash, sending keys, and inspecting elements, and performing actions like scrolling down the web page and pausing, with a focus on javascript executor.', 'duration': 44.956, 'highlights': ['The chapter covers the basics of writing an automated test script, including specifying hash, sending keys, and inspecting elements, and performing actions like scrolling down the web page and pausing, with a focus on JavaScript executor.', 'The speaker explains the process of specifying the hash before the value of the element and sending keys to a particular location, emphasizing the test automation engineer masters program and the search button.', 'The discussion includes copying the class name from the web page and pasting it into the project, indicating a step in the automated test scripting process.', 'Actions like scrolling down the web page and pausing are mentioned, with a focus on the presence of three commands containing the object of the JavaScript executor.']}, {'end': 14732.314, 'start': 14403.887, 'title': 'Understanding testng listeners in selenium', 'summary': 'Explores the working of testng listeners in selenium, highlighting the differences between webdriver and testng listeners, the purpose and features of testng, and the advantages of using testng in selenium, including its ability to generate reports, support cross-browser testing, and integrate with frameworks like maven and jenkins.', 'duration': 328.427, 'highlights': ['TestNG listeners are used to generate reports and capture screenshots of failed test cases, providing events like on test failure, on test skipped, and on test success, while webdriver listeners perform similar logging and reporting functions but with different events.', 'TestNG provides additional functionality like test annotations, grouping, prioritization, parameterization, and sequencing techniques in the code, and offers detailed reports of tests, allowing accurate location of bugs for immediate fixing.', 'Using TestNG in Selenium helps in creating robust and error-free code by breaking the entire code into smaller test cases and evaluating each of these test cases, and it also helps in generating reports in a proper format, supporting cross-browser testing, and integrating with frameworks like Maven and Jenkins.']}, {'end': 15109.204, 'start': 14733.095, 'title': 'Understanding testng annotations', 'summary': 'Outlines the advantages of testng over junit, the role of annotations in grouping and controlling the execution of test cases, and the flow of execution of testng annotations in selenium, including before suit, before test, before class, before method, test annotation, after method, after class, after test, and after suit. the chapter also explains the process of writing a test case using testng, including creating a testng project, configuring the build path, adding testng library, creating a testng class file, coding the program, and running it as a testng test.', 'duration': 376.109, 'highlights': ['Annotations in TestNG allow for easier understanding and control of test case execution, such as setting priorities, sequencing tests, and performing cleanup actions using annotations like @BeforeSuite, @BeforeTest, @BeforeClass, @BeforeMethod, @Test, @AfterMethod, @AfterClass, @AfterTest, and @AfterSuite.', 'TestNG enables parallel testing in various browsers like Google Chrome, Mozilla Firefox, Edge, Safari, Opera, etc., by specifying the driver and paths of particular drivers, and also allows the generation of detailed log reports.', 'The flow of execution in TestNG follows a specific sequence, ensuring that methods annotated with TestNG annotations are executed in the defined order, irrespective of their arrangement in the code.', 'The process of writing a test case using TestNG involves creating a TestNG project, configuring the build path, adding TestNG library, creating a TestNG class file, coding the program, and running it as a TestNG test.']}, {'end': 15719.954, 'start': 15109.204, 'title': 'Selenium test automation with testng annotations', 'summary': 'Demonstrates the use of various testng annotations in selenium test automation, such as @beforetest, @test, and @aftertest, to perform actions before, during, and after the test, with a detailed execution flow and result report.', 'duration': 610.75, 'highlights': ['The chapter demonstrates the use of @BeforeTest, @Test, and @AfterTest annotations in Selenium test automation. It provides a practical demonstration of using TestNG annotations for executing actions before, during, and after the test.', 'The demonstration includes setting system properties, creating a new object of chrome driver, specifying the base URL, and matching the actual title with the expected title of a web page. The example covers setting system properties, creating a new object of chrome driver, specifying the base URL, and performing title matching on a web page.', 'The chapter illustrates the execution flow of TestNG annotations, such as @BeforeTest, @AfterTest, and their sequence of execution. It explains the sequence of execution for TestNG annotations, including @BeforeTest, @AfterTest, @BeforeClass, @AfterClass, @BeforeMethod, and @AfterMethod.', 'The example showcases the result report, including the number of test cases run, failures, and skips. It demonstrates the result report, showing the number of test cases run, failures, and skips for better understanding of the test execution.']}], 'duration': 1361.023, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ14358931.jpg', 'highlights': ['TestNG enables parallel testing in various browsers like Google Chrome, Mozilla Firefox, Edge, Safari, Opera, etc., by specifying the driver and paths of particular drivers, and also allows the generation of detailed log reports.', 'Using TestNG in Selenium helps in creating robust and error-free code by breaking the entire code into smaller test cases and evaluating each of these test cases, and it also helps in generating reports in a proper format, supporting cross-browser testing, and integrating with frameworks like Maven and Jenkins.', 'TestNG provides additional functionality like test annotations, grouping, prioritization, parameterization, and sequencing techniques in the code, and offers detailed reports of tests, allowing accurate location of bugs for immediate fixing.', 'The chapter covers the basics of writing an automated test script, including specifying hash, sending keys, and inspecting elements, and performing actions like scrolling down the web page and pausing, with a focus on JavaScript executor.']}, {'end': 18015.427, 'segs': [{'end': 16384.026, 'src': 'embed', 'start': 16355.983, 'weight': 2, 'content': [{'end': 16358.944, 'text': "Now, let's take a look at the drag-and-drop by method.", 'start': 16355.983, 'duration': 2.961}, {'end': 16361.806, 'text': 'This has basically three attributes.', 'start': 16359.464, 'duration': 2.342}, {'end': 16370.914, 'text': 'this drag-and-drop by method performs click and hold at the source location by shifting to the given offset, horizontally or vertically.', 'start': 16361.806, 'duration': 9.108}, {'end': 16374.177, 'text': 'Okay, so this is about the drag-and-drop by method.', 'start': 16371.314, 'duration': 2.863}, {'end': 16384.026, 'text': "Now, let's move on and understand what is a move by offset method this method shifts the mouse from its current position to the given offset.", 'start': 16374.537, 'duration': 9.489}], 'summary': 'Explains drag-and-drop by method with 3 attributes and move by offset method.', 'duration': 28.043, 'max_score': 16355.983, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ16355983.jpg'}, {'end': 16496.975, 'src': 'embed', 'start': 16468.525, 'weight': 3, 'content': [{'end': 16472.808, 'text': 'Okay, so this is everything you need to know about the methods in the actions class.', 'start': 16468.525, 'duration': 4.283}, {'end': 16481.133, 'text': "Now, let's move on to the interesting part of this session a demo on how to handle the action class in selenium for that.", 'start': 16473.207, 'duration': 7.926}, {'end': 16487.538, 'text': 'We require the latest version of Java in our system and also an ID where we can perform the actions.', 'start': 16481.273, 'duration': 6.265}, {'end': 16491.614, 'text': 'So this is the Eclipse workspace guys in this case.', 'start': 16488.433, 'duration': 3.181}, {'end': 16496.975, 'text': "I've already written the piece of code so that you can understand how exactly the action class work.", 'start': 16491.653, 'duration': 5.322}], 'summary': 'Demo on handling the action class in selenium using java in eclipse workspace.', 'duration': 28.45, 'max_score': 16468.525, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ16468525.jpg'}, {'end': 16621.326, 'src': 'embed', 'start': 16589.927, 'weight': 1, 'content': [{'end': 16596.27, 'text': "and after you instantiate the actions with the driver, let's perform the operations on this actions class.", 'start': 16589.927, 'duration': 6.343}, {'end': 16601.693, 'text': 'I think you guys have understood what is the move to element method in the actions class.', 'start': 16596.951, 'duration': 4.742}, {'end': 16607.596, 'text': 'Okay, so this move to element helps in shifting the mouse to the center of the element.', 'start': 16602.133, 'duration': 5.463}, {'end': 16611.598, 'text': "So we'll move the element to this particular location.", 'start': 16608.016, 'duration': 3.582}, {'end': 16621.326, 'text': "So let's inspect our web page at Eureka.co Okay, so we'll so first we'll start working on the drop-down.", 'start': 16612.098, 'duration': 9.228}], 'summary': 'Using the actions class, move the mouse to the center of an element to perform operations on a web page at eureka.co.', 'duration': 31.399, 'max_score': 16589.927, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ16589927.jpg'}, {'end': 17361.347, 'src': 'embed', 'start': 17334.679, 'weight': 0, 'content': [{'end': 17341.821, 'text': 'Time plays a major role while testing and we need to make sure that we complete the desired task within the specific time.', 'start': 17334.679, 'duration': 7.142}, {'end': 17348.123, 'text': 'a robot class is used to generate native system input events for the purpose of test automation,', 'start': 17341.821, 'duration': 6.302}, {'end': 17353.705, 'text': 'self-running demos and other applications where the control of Mouse and keyboard is needed.', 'start': 17348.123, 'duration': 5.582}, {'end': 17361.347, 'text': 'The primary purpose of this robot class is to facilitate the automation testing for the Java platform implementations.', 'start': 17354.205, 'duration': 7.142}], 'summary': 'Time is crucial in testing; robot class enables automation for mouse and keyboard control in java platform.', 'duration': 26.668, 'max_score': 17334.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ17334679.jpg'}, {'end': 17984.75, 'src': 'embed', 'start': 17948.506, 'weight': 4, 'content': [{'end': 17955.107, 'text': "I'm going to print P and again, I'm going to click the tab key.", 'start': 17948.506, 'duration': 6.601}, {'end': 17967.609, 'text': 'So consider the object of the robot class, key press, specify the key event and also perform actions on the tab.', 'start': 17955.747, 'duration': 11.862}, {'end': 17975.207, 'text': "Again, I'm going to pause the execution for a few seconds and I'm going to print.", 'start': 17968.489, 'duration': 6.718}, {'end': 17982.129, 'text': "After you're done performing actions with the keyboard functions.", 'start': 17979.469, 'duration': 2.66}, {'end': 17984.75, 'text': "Now, let's move on and automate the mouse functions.", 'start': 17982.449, 'duration': 2.301}], 'summary': 'Automating keyboard functions with the robot class, then moving on to automate mouse functions.', 'duration': 36.244, 'max_score': 17948.506, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ17948506.jpg'}], 'start': 15721.368, 'title': 'Selenium automation techniques', 'summary': "Covers cross-browser testing with testng, selenium's actions class methods, automating web interaction with xpath and actions class, selenium actions and drag-and-drop, and the robot class in selenium for automation testing, providing detailed implementation and application in java and eclipse ide.", 'chapters': [{'end': 16074.156, 'start': 15721.368, 'title': 'Cross browser testing with testng', 'summary': 'Explains the implementation of a cross browser testing script using testng, executing the same test cases on different browsers (chrome, firefox, and edge) and running them in parallel, achieving successful actions on all three browsers, with the need for implicitly waiting for 10 seconds and using annotations like @beforetest and @test.', 'duration': 352.788, 'highlights': ['The chapter explains the implementation of a cross browser testing script using TestNG, executing the same test cases on different browsers (Chrome, Firefox, and Edge) and running them in parallel, achieving successful actions on all three browsers, with the need for implicitly waiting for 10 seconds and using annotations like @BeforeTest and @Test.', 'The script specifies the setup for launching Firefox, Chrome, and Edge browsers, and handling exceptions if no browser is passed, further including implicitly waiting for 10 seconds to load the browsers and executing test cases without throwing exceptions or closing the driver.', 'The detailed procedure for the @Test method is outlined, including actions such as navigating to a URL, clicking on login buttons, entering username and password, searching using CSS selectors and XPath, and creating a TestNG XML file to specify the class paths for all three browsers, running them in parallel, and performing actions on each browser.', 'The chapter emphasizes the successful execution of the test cases on three different browsers and encourages further learning through in-depth video tutorials available on a YouTube playlist, providing detailed knowledge about cross browser script implementation and proper usage of annotations.']}, {'end': 16735.848, 'start': 16074.176, 'title': 'Selenium - actions class methods', 'summary': 'Covers the usage of testng annotations in selenium, the concept of action class in selenium, its importance, methods available in the actions class, and a demo on handling the action class in selenium.', 'duration': 661.672, 'highlights': ['The chapter covers the usage of TestNG annotations in Selenium. Describes how to configure TestNG and XML files based on class file scripts, and usage of annotations for different purposes.', 'The chapter explains the concept of action class in Selenium and its importance. Defines action class as per the builder design pattern, its role in building composite actions, and its significance in emulating complex user gestures.', 'The chapter details the methods available in the actions class. Explains methods for keyboard and mouse events in Selenium, including send keys, key down, key up, click, double click, context click, click and hold, drag-and-drop, and their functionalities.', 'The chapter provides a demo on handling the action class in Selenium. Demonstrates setting up the browser driver, navigating to a webpage, maximizing the screen, adding implicit wait, creating and performing actions, and interacting with elements using the actions class.']}, {'end': 16942.815, 'start': 16736.687, 'title': 'Automating web interaction with xpath and actions class', 'summary': 'Details the process of writing xpath to locate web elements, interacting with web elements using the actions class, and pausing execution for specified durations, with examples of locating and interacting with search box and search button, and using the actions class to control the entire actions.', 'duration': 206.128, 'highlights': ['The chapter details the process of writing Xpath to locate web elements, interacting with web elements using the Actions class, and pausing execution for specified durations, with examples of locating and interacting with search box and search button, and using the Actions class to control the entire actions.', 'The speaker discusses writing Xpath to locate web elements and interacting with the Actions class, emphasizing the importance of specifying the parent class first and then the child class for the Xpath, and using the Actions class to link actions to web elements.', 'The speaker demonstrates locating and interacting with the search box, finding the element by ID, pausing the execution for three seconds, and sending keys to the search box, followed by clicking on the search button using Xpath and the Actions class.']}, {'end': 17328.372, 'start': 16942.835, 'title': 'Selenium actions and drag-and-drop', 'summary': 'Covers the use of action interface in selenium to perform key actions such as send keys, key down, and key up, as well as the drag-and-drop feature, including locating elements, switching frames, and performing the drag-and-drop action, with a focus on the jquery ui web page.', 'duration': 385.537, 'highlights': ['The chapter covers the use of action interface in Selenium to perform key actions such as send keys, key down, and key up. The methods discussed include send keys, key down, and key up, which can be called using the action interface.', 'The drag-and-drop feature in Selenium is demonstrated, including locating elements, switching frames, and performing the drag-and-drop action. The drag-and-drop feature is showcased within the context of the jQuery UI web page, emphasizing the capability to only drag and drop web elements within the current web page and providing guidance on switching frames and locating elements within frames.']}, {'end': 18015.427, 'start': 17334.679, 'title': 'Robot class in selenium', 'summary': 'Explains the purpose and methods of the robot class in selenium for automation testing, providing details on its application and implementation in java and eclipse ide, including setting up the browser driver and performing actions on a web page.', 'duration': 680.748, 'highlights': ['The primary purpose of this robot class is to facilitate the automation testing for the Java platform implementations. Highlights the primary purpose of the robot class in facilitating automation testing for Java platform implementations.', "The robot class can handle pop-ups during the execution and is easy to use with the automation process. Emphasizes the robot class's ability to handle pop-ups during execution and its ease of use in the automation process.", "The robot class is used to simulate and handle mouse and keyboard functions, including handling pop-ups, notifications, and file uploads on web applications. Details the robot class's role in simulating and managing mouse and keyboard functions, illustrating its capabilities in handling pop-ups, notifications, and file uploads on web applications.", 'The chapter explains the implementation of the robot class in Selenium, including setting up the browser driver, adding Selenium jar files, and writing code in the Eclipse IDE. Describes the implementation process of the robot class in Selenium, covering setting up the browser driver, adding Selenium jar files, and writing code in the Eclipse IDE.', 'The detailed steps for performing actions on a web page using the robot class, such as clicking elements, instantiating the robot class, and performing keyboard and mouse functions, are presented with code examples. Illustrates the detailed steps for performing actions on a web page using the robot class, including clicking elements, instantiating the robot class, and executing keyboard and mouse functions, supported by code examples.']}], 'duration': 2294.059, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ15721368.jpg', 'highlights': ['The chapter emphasizes the successful execution of the test cases on three different browsers and encourages further learning through in-depth video tutorials available on a YouTube playlist, providing detailed knowledge about cross browser script implementation and proper usage of annotations.', 'The chapter details the process of writing Xpath to locate web elements, interacting with web elements using the Actions class, and pausing execution for specified durations, with examples of locating and interacting with search box and search button, and using the Actions class to control the entire actions.', 'The chapter covers the usage of TestNG annotations in Selenium. Describes how to configure TestNG and XML files based on class file scripts, and usage of annotations for different purposes.', "The robot class is used to simulate and handle mouse and keyboard functions, including handling pop-ups, notifications, and file uploads on web applications. Details the robot class's role in simulating and managing mouse and keyboard functions, illustrating its capabilities in handling pop-ups, notifications, and file uploads on web applications.", 'The drag-and-drop feature in Selenium is demonstrated, including locating elements, switching frames, and performing the drag-and-drop action. The drag-and-drop feature is showcased within the context of the jQuery UI web page, emphasizing the capability to only drag and drop web elements within the current web page and providing guidance on switching frames and locating elements within frames.']}, {'end': 20324.498, 'segs': [{'end': 18134.91, 'src': 'embed', 'start': 18103.505, 'weight': 0, 'content': [{'end': 18110.152, 'text': "And if you're using the XY coordinates for your test, then the test will behave differently on the different screens.", 'start': 18103.505, 'duration': 6.647}, {'end': 18116.919, 'text': "And if in case you're running your tests in a virtual machine, then the script failure is more.", 'start': 18110.773, 'duration': 6.146}, {'end': 18121.324, 'text': 'Okay, so these are the certain limitations of this robot class.', 'start': 18117.5, 'duration': 3.824}, {'end': 18134.91, 'text': 'Selenium WebDriver is a combination of two major projects that is Selenium version 1.0 and WebDriver.', 'start': 18127.603, 'duration': 7.307}], 'summary': 'Using xy coordinates affects test behavior. virtual machine increases script failure. selenium webdriver combines selenium 1.0 and webdriver.', 'duration': 31.405, 'max_score': 18103.505, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ18103505.jpg'}, {'end': 19431.104, 'src': 'embed', 'start': 19404.406, 'weight': 1, 'content': [{'end': 19409.268, 'text': 'Okay, so this is how you navigate through a page using multiple windows in selenium.', 'start': 19404.406, 'duration': 4.862}, {'end': 19412.53, 'text': "I'm going to close this one two and three.", 'start': 19409.648, 'duration': 2.882}, {'end': 19420.822, 'text': 'So the first parent window handle is specified here and like I mentioned the first window handle is same as a parent window handle.', 'start': 19413.18, 'duration': 7.642}, {'end': 19425.262, 'text': 'So it is going to be the same ID and navigating it to google.com.', 'start': 19421.202, 'duration': 4.06}, {'end': 19431.104, 'text': 'It gives the ID of the first window that is opened and then the second one and the third one.', 'start': 19425.503, 'duration': 5.601}], 'summary': 'Demonstrating navigation through multiple windows in selenium, closing three windows and navigating to google.com.', 'duration': 26.698, 'max_score': 19404.406, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ19404406.jpg'}, {'end': 19718.994, 'src': 'embed', 'start': 19672.239, 'weight': 2, 'content': [{'end': 19673.299, 'text': 'as well as in this page.', 'start': 19672.239, 'duration': 1.06}, {'end': 19682.162, 'text': 'Okay, so this is how you can navigate through a page using selenium and also control the actions of the child window with respect to the parent window.', 'start': 19673.88, 'duration': 8.282}, {'end': 19685.824, 'text': 'So this is all the ones that we wanted to be printed.', 'start': 19682.663, 'duration': 3.161}, {'end': 19691.285, 'text': 'Okay, so this is how you switch between multiple windows in selenium.', 'start': 19686.664, 'duration': 4.621}, {'end': 19695.487, 'text': "So let's move on to our next program here in this program.", 'start': 19691.866, 'duration': 3.621}, {'end': 19698.188, 'text': "I'm going to automate a web page called nokri.com.", 'start': 19695.547, 'duration': 2.641}, {'end': 19701.529, 'text': "Let's see how you can handle multiple windows in this application.", 'start': 19698.548, 'duration': 2.981}, {'end': 19710.569, 'text': "Even this comes under the package called selenium and I'm going to create a class called multiple window class and I'm going to use the annotation in this method.", 'start': 19702.185, 'duration': 8.384}, {'end': 19718.994, 'text': 'This test annotation tells the J unit that the public void method is attached and can be run as a test case.', 'start': 19711.05, 'duration': 7.944}], 'summary': 'Demonstrating how to navigate and control multiple windows with selenium for nokri.com website', 'duration': 46.755, 'max_score': 19672.239, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ19672239.jpg'}, {'end': 19950.857, 'src': 'embed', 'start': 19920.002, 'weight': 3, 'content': [{'end': 19926.125, 'text': 'Okay, so it links the Chrome driver to get the title and then we are going to print the title of the webpage.', 'start': 19920.002, 'duration': 6.123}, {'end': 19935.006, 'text': "and after this I'm going to use the JavaScript executor, which is an interface that helps in executing the JavaScript through the selenium web driver.", 'start': 19926.841, 'duration': 8.165}, {'end': 19943.272, 'text': "So I'm going to use the JavaScript executor and link it with the driver using this command, that is JavaScript executor driver,", 'start': 19935.427, 'duration': 7.845}, {'end': 19950.857, 'text': "and then I'm going to find the element on the web page using the element locators in selenium, that is the CSS selector in this case.", 'start': 19943.272, 'duration': 7.585}], 'summary': 'Using chrome driver to get webpage title & executing javascript through selenium web driver.', 'duration': 30.855, 'max_score': 19920.002, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ19920002.jpg'}], 'start': 18015.567, 'title': 'Selenium automation and webdriver', 'summary': "Demonstrates selenium's automation of keyboard and mouse functions on the edureka website, its limitations, and discusses the basics of selenium webdriver, its benefits, and handling multiple windows. it also details the usage of javascript executor in selenium and how to handle multiple windows in selenium.", 'chapters': [{'end': 18102.885, 'start': 18015.567, 'title': 'Selenium automation and limitations', 'summary': "Demonstrates selenium's automation of keyboard and mouse functions on the edureka website and highlights its limitations, such as working only on the current window and being affected by screen resolution.", 'duration': 87.318, 'highlights': ['Selenium can control mouse and keyboard functions on the Edureka website, demonstrating its automation capabilities.', 'The limitations of the robot class in Selenium include the restriction of mouse or keyboard events to the current window, making it difficult to switch among different screens or windows.', "Mouse events executed by the code remain on the previous window if the code execution moves to another window or a new window, highlighting a limitation in Selenium's automation.", 'The mouse movement in Selenium is impacted by the screen resolution, indicating a constraint in its functionality.']}, {'end': 18369.218, 'start': 18103.505, 'title': 'Selenium webdriver: basics and benefits', 'summary': 'Discusses the basics of selenium webdriver, its advantages, and prerequisites, emphasizing its capability to efficiently handle web elements and multiple windows, using a concise and open-source api, and enabling testing across different platforms.', 'duration': 265.713, 'highlights': ['Selenium WebDriver is a collection of open-source API which are used to automate the testing of a web application. Selenium WebDriver is a collection of open-source API used for web application testing.', 'Selenium WebDriver is an open source tool which is simple and provides a concise interface to perform testing. Selenium WebDriver is a simple open-source tool with a concise interface for testing.', 'It is highly efficient because it can find the element on a web page using the element locators, which can easily identify the web element to automate the process. Selenium WebDriver is highly efficient as it can easily identify web elements to automate processes.', 'Selenium WebDriver has support over dynamic web pages like Ajax and also helps in the process of changing the web element by not reloading the page. Selenium WebDriver supports dynamic web pages like Ajax and facilitates changing web elements without page reloading.', 'The window handle function helps in handling multiple windows and the syntax goes something like this get dot window handle. The window handle function in Selenium WebDriver assists in managing multiple windows.']}, {'end': 18894.32, 'start': 18369.278, 'title': 'Handling multiple windows in selenium', 'summary': 'Introduces handling multiple windows using selenium and demonstrates the automation of a website by opening and customizing multiple windows, with a for loop used to create and handle three child windows.', 'duration': 525.042, 'highlights': ['The chapter introduces handling multiple windows using Selenium and demonstrates the automation of a website by opening and customizing multiple windows The main focus of the chapter, highlighting the core concept and practical application.', 'A for loop is used to create and handle three child windows Quantifiable data showing the specific number of child windows being handled.', 'The demonstration includes the use of get window handle and get window handles functions to retrieve window handles and print their unique IDs Key points about the functions used to retrieve and print window handles, contributing to the understanding of the process.']}, {'end': 19112.254, 'start': 18895.433, 'title': 'Using javascript executor in selenium', 'summary': 'Details the usage of javascript executor in selenium to execute javascript, get url, find elements using xpath, send keys, scroll through the window, and handle multiple windows.', 'duration': 216.821, 'highlights': ['The JavaScript executor interface in Selenium helps in executing JavaScript through the web driver, enabling interaction with web elements. It is used to perform actions such as scrolling through the window and handling multiple windows.', 'The chapter explains the process of finding elements using XPath, which is an element locator in Selenium, and sending keys to the located element, demonstrating keyboard functions.', 'The code includes pausing the execution for two seconds multiple times, which aids in observing the actions performed by the program.', 'The usage of iterator to iterate through the window handles and the while loop to specify actions on parent or child windows showcases the process of handling multiple windows in Selenium.']}, {'end': 20324.498, 'start': 19113.078, 'title': 'Handling multiple windows in selenium', 'summary': 'Discusses how to handle multiple windows in selenium through code examples, including switching between windows, navigating to different urls, and automating actions in child windows, with a focus on the process and results.', 'duration': 1211.42, 'highlights': ['The chapter demonstrates switching between two windows and performing actions in Selenium. The transcript covers examples of switching between windows, printing window titles, and closing windows, demonstrating the process of handling multiple windows in Selenium.', 'The chapter includes code examples for opening and controlling multiple windows using Selenium. Code examples include opening three child windows, printing window handles, and navigating to different URLs, showcasing practical approaches to handling multiple windows in Selenium.', 'The chapter provides a detailed walkthrough of automating a webpage and handling multiple windows using Selenium. The transcript details the process of automating a webpage, handling multiple windows, and automating actions in child windows, providing a comprehensive guide to handling multiple windows in Selenium.']}], 'duration': 2308.931, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ18015567.jpg', 'highlights': ['Selenium WebDriver is highly efficient as it can easily identify web elements to automate processes.', 'The window handle function in Selenium WebDriver assists in managing multiple windows.', 'The chapter introduces handling multiple windows using Selenium and demonstrates the automation of a website by opening and customizing multiple windows.', 'The JavaScript executor interface in Selenium helps in executing JavaScript through the web driver, enabling interaction with web elements.', 'The chapter includes code examples for opening and controlling multiple windows using Selenium.']}, {'end': 21616.539, 'segs': [{'end': 20376.504, 'src': 'embed', 'start': 20345.146, 'weight': 0, 'content': [{'end': 20349.788, 'text': 'We are going to print the window handle of the first window that is window one.', 'start': 20345.146, 'duration': 4.642}, {'end': 20351.309, 'text': 'And after this is done.', 'start': 20350.388, 'duration': 0.921}, {'end': 20358.273, 'text': 'We are going to switch to our first window using this command driver dot switch to dot window window.', 'start': 20351.329, 'duration': 6.944}, {'end': 20367.058, 'text': 'So this command helps in switching to the first window and also will scroll down through the current window using this JavaScript executor command.', 'start': 20358.693, 'duration': 8.365}, {'end': 20376.504, 'text': 'So we are going to scroll by the y-axis specifying the axis that is 400 and then we are going to quit the driver execution.', 'start': 20367.418, 'duration': 9.086}], 'summary': 'Printing window handle, switching to first window, scrolling, and quitting driver execution.', 'duration': 31.358, 'max_score': 20345.146, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ20345146.jpg'}, {'end': 20524.12, 'src': 'embed', 'start': 20494.661, 'weight': 1, 'content': [{'end': 20498.443, 'text': "now let's move ahead and learn how exactly you can take a screenshot.", 'start': 20494.661, 'duration': 3.782}, {'end': 20501.103, 'text': 'To capture a screenshot in selenium.', 'start': 20499.201, 'duration': 1.902}, {'end': 20504.345, 'text': 'We make use of an interface take screenshot.', 'start': 20501.243, 'duration': 3.102}, {'end': 20512.351, 'text': 'Okay, this method basically indicates the driver that it can capture a screenshot and store it in different ways.', 'start': 20504.865, 'duration': 7.486}, {'end': 20514.853, 'text': 'So the syntax goes something like this.', 'start': 20512.971, 'duration': 1.882}, {'end': 20517.975, 'text': 'It says file creating an object of it.', 'start': 20514.973, 'duration': 3.002}, {'end': 20524.12, 'text': "take screenshot and link it to the driver and you'll get a method which says get screenshot.", 'start': 20517.975, 'duration': 6.145}], 'summary': 'Learn how to capture a screenshot in selenium using the take screenshot interface to store it in different ways.', 'duration': 29.459, 'max_score': 20494.661, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ20494661.jpg'}, {'end': 20663.359, 'src': 'embed', 'start': 20640.773, 'weight': 3, 'content': [{'end': 20648.356, 'text': "So the first thing you need to do when you're working on selenium is to download the selenium dependencies or the selenium jar files,", 'start': 20640.773, 'duration': 7.583}, {'end': 20651.697, 'text': 'as this is not a test ng program or a Maven program.', 'start': 20648.356, 'duration': 3.341}, {'end': 20654.998, 'text': "I'm going to consider adding the external jar files to this project.", 'start': 20651.957, 'duration': 3.041}, {'end': 20659.68, 'text': "So I'm just going to right click on my project and go to build path configure build path.", 'start': 20655.518, 'duration': 4.162}, {'end': 20663.359, 'text': "where I've added all the selenium jar files.", 'start': 20660.638, 'duration': 2.721}], 'summary': 'Download selenium dependencies for project setup.', 'duration': 22.586, 'max_score': 20640.773, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ20640773.jpg'}, {'end': 21055.292, 'src': 'embed', 'start': 21024.537, 'weight': 2, 'content': [{'end': 21028.859, 'text': 'moving ahead will understand how to take a screenshot of the test field.', 'start': 21024.537, 'duration': 4.322}, {'end': 21036.559, 'text': 'Selenium WebDriver has come up with some great new functionalities that makes the testing of an application easy.', 'start': 21030.077, 'duration': 6.482}, {'end': 21042.361, 'text': 'This is because the WebDriver architecture allows the interaction outside the JavaScript sandbox.', 'start': 21037.039, 'duration': 5.322}, {'end': 21047.883, 'text': 'One of the new useful functionality is being able to take screenshots using WebDriver.', 'start': 21043.021, 'duration': 4.862}, {'end': 21055.292, 'text': 'You can take a screenshot at any stage of the test, but mostly it is used when a test fails,', 'start': 21048.59, 'duration': 6.702}], 'summary': 'Selenium webdriver enables easy screenshot capture, aiding in failure analysis.', 'duration': 30.755, 'max_score': 21024.537, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21024537.jpg'}], 'start': 20325.077, 'title': 'Selenium automation', 'summary': 'Covers automating window control, taking screenshots, and setting up selenium with testng. it includes processes such as opening, retrieving, and switching windows, capturing screenshots, and setting up the environment for test execution and event listening.', 'chapters': [{'end': 20403.202, 'start': 20325.077, 'title': 'Automating window control with selenium', 'summary': 'Details the process of automating window control with selenium, including opening a new window, retrieving window details, printing window handle, switching to the first window, scrolling through the window, and quitting the driver execution.', 'duration': 78.125, 'highlights': ['The process involves opening a new window, retrieving window details, printing window handle, switching to the first window, scrolling through the window, and quitting the driver execution.', 'The execution involves pausing for three seconds before getting the details of all the currently open windows using a specific command set, and linking the driver to obtain the details.', 'After switching to the first window, the process includes scrolling through the window using a JavaScript executor command by specifying the y-axis as 400.', 'The program is expected to open the Edureka website, search for the Selenium certification course, and click on the search icon, resulting in opening the next window.']}, {'end': 20710.966, 'start': 20404.016, 'title': 'Selenium screenshot training', 'summary': 'Covers the significance of taking screenshots in selenium for verification and bug analysis, demonstrating the method to capture screenshots and setting up the selenium environment in eclipse ide.', 'duration': 306.95, 'highlights': ['Significance of taking screenshots in Selenium Taking screenshots in Selenium is important for verification, bug analysis, and understanding the flow of the application, aiding in cross-browser testing and tracking execution.', 'Demonstration of capturing screenshots in Selenium The transcript provides a detailed walk-through of capturing screenshots in Selenium, including setting up the Selenium environment in Eclipse IDE and utilizing Java libraries.', 'Purpose of screenshots in Selenium automation Screenshots in Selenium serve the purpose of verification, identifying script or application errors, and aiding in bug analysis and cross-browsing testing.']}, {'end': 21073.918, 'start': 20711.65, 'title': 'Taking screenshots in selenium webdriver', 'summary': 'Explains how to take a screenshot in selenium webdriver, including setting up the chrome driver, capturing and saving the screenshot, and the importance of taking screenshots in the testing process.', 'duration': 362.268, 'highlights': ['The WebDriver architecture allows the interaction outside the JavaScript sandbox, providing new functionalities such as taking screenshots using WebDriver. The WebDriver architecture allows the interaction outside the JavaScript sandbox, offering new functionalities like taking screenshots using WebDriver.', 'The importance of taking screenshots is emphasized, particularly when a test fails, as it helps in the analysis to identify the cause of the failure. Taking screenshots is crucial, especially when a test fails, as it aids in the analysis to determine the cause of the failure.', 'The process of taking a screenshot in Selenium WebDriver is detailed, including setting up the Chrome driver, capturing the screenshot, and saving it with the appropriate format and file name. The chapter provides a detailed explanation of taking a screenshot in Selenium WebDriver, covering setting up the Chrome driver, capturing the screenshot, and saving it with the correct format and file name.']}, {'end': 21616.539, 'start': 21074.804, 'title': 'Setting up selenium with testng', 'summary': 'Demonstrates setting up selenium with testng, including creating a maven project, adding selenium dependencies, creating a testng xml file, and implementing classes and methods for test execution and listening to test events.', 'duration': 541.735, 'highlights': ['Creating a Maven project with TestNG and Selenium dependencies The process involves creating a new Maven project, adding TestNG and Selenium dependencies, and configuring the build path for the project.', 'Creating a TestNG XML file for specifying test class names The TestNG XML file is created to specify the class names for test execution, ensuring that the package and class name are correctly specified.', 'Implementing classes and methods for test execution The base class is created to initialize the browser instances and set the browser driver, while the demo class extends the base class and specifies methods for setup, teardown, and test execution, including assertion of test results.', 'Listening to test events using Listeners class The Listeners class is used to listen to test events, and the demo class is linked to the Listeners class using annotations to handle test failures and print appropriate messages.']}], 'duration': 1291.462, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ20325077.jpg', 'highlights': ['The process involves opening a new window, retrieving window details, printing window handle, switching to the first window, scrolling through the window, and quitting the driver execution.', 'Demonstration of capturing screenshots in Selenium The transcript provides a detailed walk-through of capturing screenshots in Selenium, including setting up the Selenium environment in Eclipse IDE and utilizing Java libraries.', 'The WebDriver architecture allows the interaction outside the JavaScript sandbox, providing new functionalities such as taking screenshots using WebDriver. The WebDriver architecture allows the interaction outside the JavaScript sandbox, offering new functionalities like taking screenshots using WebDriver.', 'Creating a Maven project with TestNG and Selenium dependencies The process involves creating a new Maven project, adding TestNG and Selenium dependencies, and configuring the build path for the project.']}, {'end': 22719.071, 'segs': [{'end': 21665.529, 'src': 'embed', 'start': 21618.3, 'weight': 0, 'content': [{'end': 21620.581, 'text': 'And it got the screenshot of the webpage.', 'start': 21618.3, 'duration': 2.281}, {'end': 21627.266, 'text': "Let's see.", 'start': 21626.846, 'duration': 0.42}, {'end': 21628.907, 'text': 'What is cross browser testing?', 'start': 21627.406, 'duration': 1.501}, {'end': 21637.954, 'text': 'Cross browser testing refers to testing of an application in multiple browsers like Internet Explorer, Chrome, Firefox, Safari,', 'start': 21629.511, 'duration': 8.443}, {'end': 21641.355, 'text': 'so that we can test our application effectively.', 'start': 21637.954, 'duration': 3.401}, {'end': 21647.557, 'text': 'cross browser testing is a very important concept in automation, because here the actual automation comes into the picture.', 'start': 21641.355, 'duration': 6.202}, {'end': 21649.798, 'text': 'So consider an example.', 'start': 21648.077, 'duration': 1.721}, {'end': 21658.063, 'text': 'suppose, say, if you have 20 test cases to execute manually, So for you it is not a big deal, because you can execute it within one or two days.', 'start': 21649.798, 'duration': 8.265}, {'end': 21665.529, 'text': 'However, at the same test cases has to be executed in five different browsers, which means there are hundred test cases,', 'start': 21658.603, 'duration': 6.926}], 'summary': 'Cross browser testing ensures application compatibility in multiple browsers for effective automation.', 'duration': 47.229, 'max_score': 21618.3, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21618300.jpg'}, {'end': 21771.651, 'src': 'embed', 'start': 21748.381, 'weight': 6, 'content': [{'end': 21756.847, 'text': 'and all of these back-end Technologies can be used, but overall, in the front end, in the rendering, only these three Technologies are used.', 'start': 21748.381, 'duration': 8.466}, {'end': 21763.089, 'text': 'However, each browser use a completely different rendering engine to compute these three technologies.', 'start': 21757.487, 'duration': 5.602}, {'end': 21771.651, 'text': 'For example, Google Chrome uses blink, Firefox uses gecko and Internet Explorer uses edge HTML and chakra,', 'start': 21763.569, 'duration': 8.082}], 'summary': 'Three rendering technologies used: blink, gecko, and edge html with chakra.', 'duration': 23.27, 'max_score': 21748.381, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21748381.jpg'}, {'end': 21819.945, 'src': 'embed', 'start': 21789.641, 'weight': 7, 'content': [{'end': 21798.688, 'text': 'Even if we use different or any browser along with these facts, let me tell you few reasons that depicts why we should perform cross browser testing.', 'start': 21789.641, 'duration': 9.047}, {'end': 21803.8, 'text': 'First reason is browser compatibility with different OS, that is,', 'start': 21799.378, 'duration': 4.422}, {'end': 21808.621, 'text': 'you need to check the browser compatibility with all the different operating systems.', 'start': 21803.8, 'duration': 4.821}, {'end': 21810.482, 'text': 'next, image orientation.', 'start': 21808.621, 'duration': 1.861}, {'end': 21819.945, 'text': 'next, compatibility with the new web framework and also each browser have the different orientation of JavaScript, which can cause issues sometimes.', 'start': 21810.482, 'duration': 9.463}], 'summary': 'Perform cross browser testing for different os compatibility and web framework support.', 'duration': 30.304, 'max_score': 21789.641, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21789641.jpg'}, {'end': 21901.441, 'src': 'embed', 'start': 21858.217, 'weight': 1, 'content': [{'end': 21866.463, 'text': 'If any in this type of testing it is not possible to cover many browsers and also the application might not be tested on major browser versions.', 'start': 21858.217, 'duration': 8.246}, {'end': 21873.095, 'text': 'and also performing cross browser check manually is costly and time-consuming as well.', 'start': 21867.23, 'duration': 5.865}, {'end': 21880.662, 'text': 'now, coming to automated method, cross browser testing is basically running the same set of test cases multiple times on different browsers.', 'start': 21873.095, 'duration': 7.567}, {'end': 21884.425, 'text': 'This type of repeated task is best suited for automation.', 'start': 21881.322, 'duration': 3.103}, {'end': 21889.289, 'text': "Thus, it's more cost and time effective to perform this testing by using tools.", 'start': 21884.926, 'duration': 4.363}, {'end': 21894.174, 'text': "Now, let's see how it is performed in automated way using selenium web driver.", 'start': 21889.93, 'duration': 4.244}, {'end': 21901.441, 'text': 'If you are using selenium web driver, you can automate the test cases using Internet Explorer, Firefox, Chrome,', 'start': 21894.794, 'duration': 6.647}], 'summary': 'Automating cross-browser testing with selenium is cost and time-effective.', 'duration': 43.224, 'max_score': 21858.217, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21858217.jpg'}, {'end': 22420.829, 'src': 'embed', 'start': 22393.454, 'weight': 4, 'content': [{'end': 22396.396, 'text': 'it gave the search for selenium on Chrome browser.', 'start': 22393.454, 'duration': 2.942}, {'end': 22403.58, 'text': 'And, on the other hand, even on the Firefox browser it executed all these actions in a simultaneously with Chrome driver,', 'start': 22396.876, 'duration': 6.704}, {'end': 22410.283, 'text': 'but there was a delay of 2 to 3 seconds because it was a second instance and my Chrome browser was the first instance,', 'start': 22403.58, 'duration': 6.703}, {'end': 22414.626, 'text': 'and that is a reason there was a delay, but both the actions happen simultaneously.', 'start': 22410.283, 'duration': 4.343}, {'end': 22417.007, 'text': 'There was no any different actions.', 'start': 22415.206, 'duration': 1.801}, {'end': 22420.829, 'text': 'that was happened in the different browsers, but same website was launched.', 'start': 22417.007, 'duration': 3.822}], 'summary': 'Selenium search performed on chrome and firefox simultaneously, with 2-3 seconds delay on firefox due to second instance.', 'duration': 27.375, 'max_score': 22393.454, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22393454.jpg'}, {'end': 22663.428, 'src': 'embed', 'start': 22639.017, 'weight': 2, 'content': [{'end': 22646.161, 'text': 'These issues include factors that might keep the essential functions of the application from working simultaneously.', 'start': 22639.017, 'duration': 7.144}, {'end': 22653.125, 'text': 'for anyone who wants to have a website or application with a professional look, cross browser compatibility testing is essential.', 'start': 22646.161, 'duration': 6.964}, {'end': 22657.507, 'text': 'It is not that web browsers on personal computers are a concern here.', 'start': 22653.665, 'duration': 3.842}, {'end': 22663.428, 'text': 'but with the ever-increasing advancement of phone and tablet with their web access abilities.', 'start': 22658.067, 'duration': 5.361}], 'summary': 'Cross browser compatibility testing is essential for professional websites and applications, especially with the increasing use of phones and tablets.', 'duration': 24.411, 'max_score': 22639.017, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22639017.jpg'}], 'start': 21618.3, 'title': 'Cross browser testing in selenium', 'summary': 'Emphasizes the importance of cross browser testing in selenium, highlighting that automating 20 test cases for multiple browsers can save time and effort, potentially reducing execution time from a week to just one or two hours. it also outlines methods of performing cross browser testing, executing tests on chrome, firefox, and edge browsers, and emphasizes the importance of cross browser compatibility testing for web applications.', 'chapters': [{'end': 21684.094, 'start': 21618.3, 'title': 'Cross browser testing importance', 'summary': 'Discusses the importance of cross browser testing, highlighting that automating 20 test cases for multiple browsers can save time and effort, with a potential of reducing the execution time from a week to just one or two hours.', 'duration': 65.794, 'highlights': ['Automating 20 test cases for multiple browsers can reduce execution time from a week to one or two hours, increasing efficiency and saving time.', 'Cross browser testing is essential in automation, allowing effective testing of applications in different browsers like Internet Explorer, Chrome, Firefox, and Safari.']}, {'end': 22046.948, 'start': 21684.695, 'title': 'Cross browser testing in selenium', 'summary': 'Explains the need for cross browser testing in selenium, emphasizing the importance of ensuring website functionality across different browsers and operating systems. it also outlines the methods of performing cross browser testing, highlighting the drawbacks of manual testing and the benefits of automation, particularly with selenium webdriver.', 'duration': 362.253, 'highlights': ['Cross browser testing ensures website functionality across different browsers and operating systems It is nothing but the ability of a website or a web application to function across different browsers and different operating systems, ensuring that the web application or website works across all different browsers and operating systems.', 'Different rendering engines of browsers cause websites to be rendered differently Each browser uses a completely different rendering engine to compute HTML 5, CSS 3, and JavaScript, leading to different rendering of the same website by various browsers such as Chrome, Firefox, and Internet Explorer.', 'Reasons for performing cross browser testing include browser compatibility with different OS, image orientation, and compatibility with new web frameworks Performing cross browser testing is essential due to reasons such as checking browser compatibility with different operating systems, image orientation, compatibility with new web frameworks, and different orientation of JavaScript in each browser.', 'Manual cross browser testing is costly, time-consuming, and may not cover many browsers or major versions Manual cross browser testing may not cover many browsers or major versions, making it costly, time-consuming, and not as effective as automated testing.', 'Automated cross browser testing is more cost and time effective, especially with tools like Selenium WebDriver Automated cross browser testing, involving running the same set of test cases multiple times on different browsers, is more cost and time effective, particularly with tools like Selenium WebDriver.']}, {'end': 22719.071, 'start': 22046.948, 'title': 'Cross browser testing using selenium', 'summary': 'Outlines the process of performing cross browser testing using selenium, executing tests on chrome, firefox, and edge browsers, ensuring simultaneous actions, and emphasizing the importance of cross browser compatibility testing for web applications.', 'duration': 672.123, 'highlights': ['The chapter outlines the process of performing cross browser testing using Selenium The transcript provides a detailed explanation of how to conduct cross browser testing using Selenium, demonstrating the practical implementation of tests on different web browsers.', 'Executing tests on Chrome, Firefox, and Edge browsers with simultaneous actions The transcript details the simultaneous execution of actions on Chrome, Firefox, and Edge browsers, ensuring the successful performance of actions on all three different web browsers.', 'Emphasizing the importance of cross browser compatibility testing for web applications The chapter emphasizes the significance of cross browser compatibility testing for web applications to resolve issues, ensure professional appearance, and draw more customers, especially with the increasing use of mobile web browsers.']}], 'duration': 1100.771, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ21618300.jpg', 'highlights': ['Automating 20 test cases for multiple browsers can reduce execution time from a week to one or two hours, increasing efficiency and saving time.', 'Automated cross browser testing, involving running the same set of test cases multiple times on different browsers, is more cost and time effective, particularly with tools like Selenium WebDriver.', 'The chapter emphasizes the significance of cross browser compatibility testing for web applications to resolve issues, ensure professional appearance, and draw more customers, especially with the increasing use of mobile web browsers.', 'The transcript provides a detailed explanation of how to conduct cross browser testing using Selenium, demonstrating the practical implementation of tests on different web browsers.', 'The transcript details the simultaneous execution of actions on Chrome, Firefox, and Edge browsers, ensuring the successful performance of actions on all three different web browsers.', 'Cross browser testing is essential in automation, allowing effective testing of applications in different browsers like Internet Explorer, Chrome, Firefox, and Safari.', 'Different rendering engines of browsers cause websites to be rendered differently Each browser uses a completely different rendering engine to compute HTML 5, CSS 3, and JavaScript, leading to different rendering of the same website by various browsers such as Chrome, Firefox, and Internet Explorer.', 'Reasons for performing cross browser testing include browser compatibility with different OS, image orientation, and compatibility with new web frameworks Performing cross browser testing is essential due to reasons such as checking browser compatibility with different operating systems, image orientation, compatibility with new web frameworks, and different orientation of JavaScript in each browser.', 'Manual cross browser testing may not cover many browsers or major versions, making it costly, time-consuming, and not as effective as automated testing.']}, {'end': 26067.492, 'segs': [{'end': 22742.23, 'src': 'embed', 'start': 22719.071, 'weight': 1, 'content': [{'end': 22726.459, 'text': 'Internet Explorer next it to not only improve just the look and feel, but also the functionality of the application,', 'start': 22719.071, 'duration': 7.388}, {'end': 22731.065, 'text': 'and also it eliminates the need for developing and maintaining separate test.', 'start': 22726.459, 'duration': 4.606}, {'end': 22738.408, 'text': 'because conducting automated tests can be recorded in one browser and then played back in other supported browser.', 'start': 22731.705, 'duration': 6.703}, {'end': 22740.629, 'text': 'that needs new test automation technology.', 'start': 22738.408, 'duration': 2.221}, {'end': 22742.23, 'text': 'So this is very simple.', 'start': 22740.969, 'duration': 1.261}], 'summary': 'Internet explorer improves look, functionality, and test automation, simplifying the process.', 'duration': 23.159, 'max_score': 22719.071, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22719071.jpg'}, {'end': 22795.678, 'src': 'embed', 'start': 22773.369, 'weight': 0, 'content': [{'end': 22781.375, 'text': 'This allows automation engineers to have a single test script which can execute test for all the test data in the table.', 'start': 22773.369, 'duration': 8.006}, {'end': 22789.897, 'text': 'In this framework, input values are read from the data file and then they are stored into a variable in test scripts,', 'start': 22781.995, 'duration': 7.902}, {'end': 22795.678, 'text': 'and data-driven testing enables both positive and negative test cases into a single sheet.', 'start': 22789.897, 'duration': 5.781}], 'summary': 'Data-driven testing allows automation of multiple test cases using a single script.', 'duration': 22.309, 'max_score': 22773.369, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22773369.jpg'}, {'end': 22899.032, 'src': 'embed', 'start': 22874.702, 'weight': 2, 'content': [{'end': 22881.907, 'text': 'if you wish to know about parameter annotation, then stay tuned for the upcoming video on parameter annotation in test ng.', 'start': 22874.702, 'duration': 7.205}, {'end': 22885.548, 'text': "For now, let's understand what is data provider in TestNG.", 'start': 22882.487, 'duration': 3.061}, {'end': 22893.53, 'text': 'If you want to provide the test data, then you need to declare a method that returns a data set in a form of two-dimensional object array.', 'start': 22886.008, 'duration': 7.522}, {'end': 22899.032, 'text': 'The first array represents a data set whereas the second array contains a parameter values.', 'start': 22893.93, 'duration': 5.102}], 'summary': 'Upcoming video on parameter annotation in testng, data provider for test data', 'duration': 24.33, 'max_score': 22874.702, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22874702.jpg'}, {'end': 23241.368, 'src': 'embed', 'start': 23217.057, 'weight': 3, 'content': [{'end': 23222.823, 'text': "Now, let's understand one more example where I will be providing the data into Facebook website using data provider.", 'start': 23217.057, 'duration': 5.766}, {'end': 23230.109, 'text': 'So in this example, what I will do I will type the username and password and login into facebook.com in this test case.', 'start': 23223.283, 'duration': 6.826}, {'end': 23233.553, 'text': 'It should run two times with a different set of data.', 'start': 23230.69, 'duration': 2.863}, {'end': 23237.065, 'text': 'That is we have provided it in a two-dimensional array.', 'start': 23234.122, 'duration': 2.943}, {'end': 23238.426, 'text': "Let's check that now.", 'start': 23237.465, 'duration': 0.961}, {'end': 23241.368, 'text': 'So first what I will do the same thing.', 'start': 23238.786, 'duration': 2.582}], 'summary': 'Demonstrated data input into facebook website using data provider for two test runs.', 'duration': 24.311, 'max_score': 23217.057, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23217057.jpg'}, {'end': 23383.594, 'src': 'embed', 'start': 23347.677, 'weight': 8, 'content': [{'end': 23348.778, 'text': 'And next what I am doing.', 'start': 23347.677, 'duration': 1.101}, {'end': 23357.448, 'text': "I'm creating a method and creating a object array with two rows and two columns first parameter is row and the second parameter is column.", 'start': 23349.159, 'duration': 8.289}, {'end': 23361.452, 'text': 'Now, I have to enter the data to row 0 column 0.', 'start': 23357.908, 'duration': 3.544}, {'end': 23367.459, 'text': 'I hope you remember in the previous example that what we did we simply enter the data right the same way.', 'start': 23361.452, 'duration': 6.007}, {'end': 23376.331, 'text': 'So, at row 0, column 0, it will enter the username as this, and at row 0, column 1, it will enter the password as this one.', 'start': 23368.448, 'duration': 7.883}, {'end': 23383.594, 'text': 'again, next to row 1, column 0, it will enter the second username and row 1, column 1, it will enter the second password.', 'start': 23376.331, 'duration': 7.263}], 'summary': 'Creating object array with 2x2 dimensions, entering usernames and passwords.', 'duration': 35.917, 'max_score': 23347.677, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23347677.jpg'}, {'end': 23464.707, 'src': 'embed', 'start': 23439.947, 'weight': 7, 'content': [{'end': 23445.19, 'text': 'So default test that was run was to and on the default suit also there were no failures and skips.', 'start': 23439.947, 'duration': 5.243}, {'end': 23451.214, 'text': 'So if I provide 10 records or 20 records or hundred records, this will pass, because there is no doubt in that.', 'start': 23445.731, 'duration': 5.483}, {'end': 23454.617, 'text': 'So if you have hundreds and thousands of data sets,', 'start': 23452.094, 'duration': 2.523}, {'end': 23460.623, 'text': 'then you can use Excel sheet to store the data and then provide the path of the Excel file in your code.', 'start': 23454.617, 'duration': 6.006}, {'end': 23464.707, 'text': 'So that will help you to process all the records present in the Excel file.', 'start': 23461.003, 'duration': 3.704}], 'summary': 'Default test run with no failures or skips; excel sheet used to process hundreds or thousands of data records.', 'duration': 24.76, 'max_score': 23439.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23439947.jpg'}, {'end': 23675.258, 'src': 'embed', 'start': 23640.141, 'weight': 4, 'content': [{'end': 23645.943, 'text': "If you're having one single test script in which you're testing five different functionalities, then the code is going to be pretty huge, right?", 'start': 23640.141, 'duration': 5.802}, {'end': 23648.246, 'text': 'by making changes to one part of the code.', 'start': 23646.544, 'duration': 1.702}, {'end': 23651.472, 'text': 'You might be affecting other parts right the other functionalities.', 'start': 23648.346, 'duration': 3.126}, {'end': 23656.46, 'text': 'so you can avoid that by breaking the entire code into smaller parts of code and then testing them.', 'start': 23651.472, 'duration': 4.988}, {'end': 23660.647, 'text': 'the next benefit is that with the help of a selenium framework, there is higher portability.', 'start': 23656.46, 'duration': 4.187}, {'end': 23667.172, 'text': 'So if you have a smaller piece of code, that code can be moved easily to another package or to another project,', 'start': 23661.187, 'duration': 5.985}, {'end': 23670.154, 'text': 'or if you want to just use it later for some other purpose, you can do that.', 'start': 23667.172, 'duration': 2.982}, {'end': 23675.258, 'text': "There's no stopping you and, most of all, your script maintenance is going to be very, very simple,", 'start': 23670.554, 'duration': 4.704}], 'summary': 'Breaking code into smaller parts for easier testing and higher portability with selenium framework.', 'duration': 35.117, 'max_score': 23640.141, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23640141.jpg'}, {'end': 23746.192, 'src': 'embed', 'start': 23718.291, 'weight': 12, 'content': [{'end': 23721.572, 'text': 'We have a keyword-driven framework and we have a hybrid framework.', 'start': 23718.291, 'duration': 3.281}, {'end': 23727.235, 'text': 'So our data-driven framework is a technique where in you will be separating your test script and your data set.', 'start': 23722.112, 'duration': 5.123}, {'end': 23732.037, 'text': 'So whatever data you want to feed that will be separated from your actual test case.', 'start': 23727.855, 'duration': 4.182}, {'end': 23736.919, 'text': 'Okay, and a keyword-driven framework is something similar but yet different.', 'start': 23732.617, 'duration': 4.302}, {'end': 23741.09, 'text': 'The difference is that instead of separating the data set from the test script.', 'start': 23737.569, 'duration': 3.521}, {'end': 23746.192, 'text': 'We will be separating the methods which need to be executed in that same test script.', 'start': 23741.61, 'duration': 4.582}], 'summary': 'Two frameworks discussed: keyword-driven and data-driven, separating test script, data, and methods.', 'duration': 27.901, 'max_score': 23718.291, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23718291.jpg'}, {'end': 23795.174, 'src': 'embed', 'start': 23755.955, 'weight': 9, 'content': [{'end': 23762.957, 'text': 'That is the only difference and then we have hybrid framework, which basically implements the best features of both of these frameworks.', 'start': 23755.955, 'duration': 7.002}, {'end': 23769.916, 'text': 'Okay, So these are the types, and let me get started with explaining each of them, one after the other, and, of course,', 'start': 23763.337, 'duration': 6.579}, {'end': 23770.976, 'text': "I'm going to give you a demonstration.", 'start': 23769.916, 'duration': 1.06}, {'end': 23776.177, 'text': "Okay, So let's start with a data-driven framework.", 'start': 23771.516, 'duration': 4.661}, {'end': 23782.539, 'text': 'data-driven framework is a testing strategy in which the data set under test is stored separately from the test script.', 'start': 23776.177, 'duration': 6.362}, {'end': 23787.96, 'text': "Let's take an example of me logging into a web application and I want to test that success.", 'start': 23783.299, 'duration': 4.661}, {'end': 23795.174, 'text': "Okay And if I want to basically achieve automation, then what I'm going to do is I'm going to separate the data set in my case.", 'start': 23788.32, 'duration': 6.854}], 'summary': 'The presentation discussed types of testing frameworks including data-driven framework, demonstrating the separation of data sets from test scripts.', 'duration': 39.219, 'max_score': 23755.955, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23755955.jpg'}, {'end': 23917.515, 'src': 'embed', 'start': 23891.79, 'weight': 6, 'content': [{'end': 23899.074, 'text': 'Okay, you can use Apache POI for both reading and writing operations on Microsoft files, not just Excel files.', 'start': 23891.79, 'duration': 7.284}, {'end': 23908.44, 'text': "Okay, so Apache POI is an open-source tool and it's a library which is nothing but a set of programs or a set of functions,", 'start': 23899.895, 'duration': 8.545}, {'end': 23913.122, 'text': 'which allows us to recreate or edit these Microsoft documents using Java.', 'start': 23908.44, 'duration': 4.682}, {'end': 23917.515, 'text': 'Okay So let me go forward and get to more details.', 'start': 23913.823, 'duration': 3.692}], 'summary': 'Apache poi is an open-source tool for reading and writing microsoft files using java.', 'duration': 25.725, 'max_score': 23891.79, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ23891790.jpg'}, {'end': 25740.512, 'src': 'embed', 'start': 25708.41, 'weight': 13, 'content': [{'end': 25714.631, 'text': "So it contains the functionalities of different methods and I'm importing these methods onto my new object.", 'start': 25708.41, 'duration': 6.221}, {'end': 25722.232, 'text': "Okay, because I'm executing or starting instantiating an object instance of this particular class in my second class.", 'start': 25715.191, 'duration': 7.041}, {'end': 25726.353, 'text': 'Okay, so let me just open up the Eclipse and explain this better.', 'start': 25722.992, 'duration': 3.361}, {'end': 25727.953, 'text': 'So this is my Eclipse.', 'start': 25727.033, 'duration': 0.92}, {'end': 25730.534, 'text': "I'll just close all these files here.", 'start': 25728.153, 'duration': 2.381}, {'end': 25740.512, 'text': 'and the same let me open up hybrid framework package and open the three files your actions JavaScript and read Excel.', 'start': 25732.236, 'duration': 8.276}], 'summary': 'Importing functionalities into a new object and explaining in eclipse.', 'duration': 32.102, 'max_score': 25708.41, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ25708410.jpg'}], 'start': 22719.071, 'title': 'Data-driven and cross-browser testing', 'summary': 'Discusses the importance of cross-browser testing, the advantages of a data-driven framework, and the usage of data provider annotation in testng for parameterization. it also demonstrates using a data provider to input data into the facebook website, reading an excel file using apache poi, and provides a demo of data-driven and keyword-driven frameworks with relevant examples.', 'chapters': [{'end': 23215.786, 'start': 22719.071, 'title': 'Cross-browser testing and data-driven framework', 'summary': 'Discusses the importance of cross-browser testing, advantages of data-driven framework, and the usage of data provider annotation in testng for parameterization, aiming to ease the task of testing multiple sets of data.', 'duration': 496.715, 'highlights': ['Advantages of Data-Driven Framework Data-driven framework allows automation engineers to have a single test script which can execute test for all the test data in the table, enabling both positive and negative test cases into a single sheet.', 'Importance of Cross-Browser Testing Conducting automated tests can be recorded in one browser and then played back in other supported browsers, eliminating the need for developing and maintaining separate tests. This simplifies the process.', 'Usage of Data Provider Annotation in TestNG Data provider annotation in TestNG allows the test method to receive a two-dimensional Java object, easing the task of testing multiple sets of data. It provides a methodology for handling large data sets in a single execution flow.']}, {'end': 24256.398, 'start': 23217.057, 'title': 'Data provider example on facebook website', 'summary': 'Demonstrates using a data provider to input data into facebook website, running a test case with different data sets, and explains the benefits of a selenium framework. it also covers the types of selenium frameworks and provides a detailed demonstration of a data-driven framework using apache poi for reading data from an excel file.', 'duration': 1039.341, 'highlights': ['Using a data provider to input data into Facebook website and running a test case two times with different sets of data The example showcases using a data provider to input data into Facebook website and running a test case two times with different sets of data, demonstrating the practical application of data provider in executing test cases with multiple data sets.', 'Explanation of the benefits of a Selenium framework including increased code reusage, improved code readability, and higher portability The chapter explains the benefits of a Selenium framework, emphasizing increased code reusage, improved code readability, and higher portability as key advantages, providing insights into the practical advantages of implementing a Selenium framework in test automation.', 'Detailed demonstration of a data-driven framework using Apache POI for reading data from an Excel file A detailed demonstration of a data-driven framework is provided, showcasing the usage of Apache POI for reading data from an Excel file, illustrating the practical implementation of a data-driven framework in test automation.']}, {'end': 24674.897, 'start': 24257.098, 'title': 'Excel file reading using apache poi', 'summary': 'Explains the process of reading an excel file using apache poi, including creating objects for xssf workbook and xssf sheet, finding the number of rows in the excel file, and reading data from each cell using a two-dimensional array and for loop.', 'duration': 417.799, 'highlights': ['Creating objects for XSSF workbook and XSSF sheet The speaker explains the process of creating objects for XSSF workbook and XSSF sheet, which are inbuilt libraries that come with Apache POI.', "Finding the number of rows in the Excel file The method 'getRowCount' is used to find out the number of rows in the Excel file, which is essential for executing a for loop to read multiple login credentials.", 'Reading data from each cell using a two-dimensional array and for loop The speaker demonstrates how a two-dimensional array is used to store the username and password, and a for loop is employed to read data from each cell in the Excel file.']}, {'end': 25366.612, 'start': 24675.772, 'title': 'Demo of data-driven and keyword-driven frameworks', 'summary': 'Demonstrates a demo of a data-driven framework, executing five test cases with three failures, and then explains the concept of a keyword-driven framework using an excel file to control the methods executed in the test script, with an example of breaking down a test case into multiple methods.', 'duration': 690.84, 'highlights': ['Executing five test cases with three failures The demo executed a total of five test cases, out of which three were failures, demonstrating the effectiveness of the data-driven framework.', 'Explanation of keyword-driven framework using an Excel file The chapter explains the concept of a keyword-driven framework, which involves using an Excel file to control the methods executed in the test script, providing flexibility in choosing which methods to execute.', 'Breaking down a test case into multiple methods The example provided illustrates breaking down a test case into multiple methods in the keyword-driven framework, enhancing reusability and maintainability of the test scripts.']}, {'end': 26067.492, 'start': 25366.952, 'title': 'Keyword-driven and hybrid frameworks', 'summary': 'Explains the implementation of keyword-driven and hybrid frameworks in test automation, where keyword-driven framework executes methods based on keywords in an excel file and hybrid framework combines data-driven and keyword-driven techniques to execute methods.', 'duration': 700.54, 'highlights': ['The chapter explains the implementation of keyword-driven and hybrid frameworks in test automation. The chapter covers the explanation of keyword-driven and hybrid frameworks in test automation.', 'Keyword-driven framework executes methods based on keywords in an Excel file. The keyword-driven framework involves executing methods based on keywords present in an external Excel file.', 'Hybrid framework combines data-driven and keyword-driven techniques to execute methods. The hybrid framework combines the features of data-driven and keyword-driven techniques to execute methods based on data read from an Excel file.', 'The Java Reflection class is used to import methods from one class to another in the hybrid framework. The Java Reflection class is utilized to import methods from one class to another in the hybrid framework.']}], 'duration': 3348.421, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ22719071.jpg', 'highlights': ['Advantages of Data-Driven Framework: Single test script for all test data, enabling positive and negative test cases.', 'Importance of Cross-Browser Testing: Simplifies test process by recording in one browser and playing back in other supported browsers.', 'Usage of Data Provider Annotation in TestNG: Allows test method to receive a two-dimensional Java object, easing testing of multiple data sets.', 'Using a data provider to input data into Facebook website and running a test case two times with different sets of data: Practical application of data provider in executing test cases with multiple data sets.', 'Benefits of a Selenium framework: Increased code reusage, improved code readability, and higher portability.', 'Detailed demonstration of a data-driven framework using Apache POI for reading data from an Excel file: Practical implementation of a data-driven framework in test automation.', 'Creating objects for XSSF workbook and XSSF sheet: Process of creating objects for XSSF workbook and XSSF sheet using Apache POI.', "Finding the number of rows in the Excel file: Method 'getRowCount' used to find out the number of rows in the Excel file.", 'Reading data from each cell using a two-dimensional array and for loop: Demonstration of using a two-dimensional array and for loop to read data from each cell in the Excel file.', 'Executing five test cases with three failures: Demonstration of the effectiveness of the data-driven framework.', 'Explanation of keyword-driven framework using an Excel file: Concept of using an Excel file to control the methods executed in the test script.', 'Breaking down a test case into multiple methods: Illustration of breaking down a test case into multiple methods in the keyword-driven framework.', 'Explanation of keyword-driven and hybrid frameworks in test automation: Covers the explanation of keyword-driven and hybrid frameworks in test automation.', 'Keyword-driven framework executes methods based on keywords in an Excel file: Involves executing methods based on keywords present in an external Excel file.', 'Hybrid framework combines data-driven and keyword-driven techniques to execute methods: Combines the features of data-driven and keyword-driven techniques to execute methods based on data read from an Excel file.', 'Java Reflection class is used to import methods from one class to another in the hybrid framework: Utilization of Java Reflection class in the hybrid framework.']}, {'end': 27417.194, 'segs': [{'end': 26820.946, 'src': 'embed', 'start': 26742.474, 'weight': 0, 'content': [{'end': 26751.643, 'text': "Yes I'll just apply and close this and one more thing that I need here is I need to add the libraries as well.", 'start': 26742.474, 'duration': 9.169}, {'end': 26754.426, 'text': "So I'll just add the J unit library.", 'start': 26752.004, 'duration': 2.422}, {'end': 26760.372, 'text': 'And I will add test ng library as well because I need them.', 'start': 26754.446, 'duration': 5.926}, {'end': 26768.571, 'text': 'So I want to know whether the test case were passed or failed or that scenarios was passed or failed and that is a reason I need all the libraries.', 'start': 26761.227, 'duration': 7.344}, {'end': 26770.852, 'text': "So I'll just apply and closes.", 'start': 26769.292, 'duration': 1.56}, {'end': 26776.395, 'text': 'So right now you saw I just added the cucumber libraries and I did not add the selenium libraries.', 'start': 26771.393, 'duration': 5.002}, {'end': 26781.298, 'text': 'Why? because I just want to show you how to write a scenario, how to execute the test cases,', 'start': 26776.455, 'duration': 4.843}, {'end': 26785.32, 'text': 'and then I will add selenium and then integrate cucumber with selenium.', 'start': 26781.298, 'duration': 4.022}, {'end': 26788.102, 'text': "Okay for now, let's see about this only.", 'start': 26785.54, 'duration': 2.562}, {'end': 26795.717, 'text': 'So after this I need to create a folder say source folder as features.', 'start': 26789.19, 'duration': 6.527}, {'end': 26801.603, 'text': 'Okay So in this folder, I need to create a feature file.', 'start': 26797.559, 'duration': 4.044}, {'end': 26803.645, 'text': "So I'll just click on the file here.", 'start': 26802.003, 'duration': 1.642}, {'end': 26809.631, 'text': "I'll click on next and I will name it as test dot feature.", 'start': 26803.805, 'duration': 5.826}, {'end': 26812.72, 'text': "Okay I'll just click on the finish.", 'start': 26810.692, 'duration': 2.028}, {'end': 26815.702, 'text': 'So you got a test or feature file here.', 'start': 26813.4, 'duration': 2.302}, {'end': 26819.225, 'text': 'So now my task is to write the test cases.', 'start': 26816.343, 'duration': 2.882}, {'end': 26820.946, 'text': 'So, as I have told you,', 'start': 26819.785, 'duration': 1.161}], 'summary': 'Adding junit and testng libraries for testing. creating feature file for test cases.', 'duration': 78.472, 'max_score': 26742.474, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ26742474.jpg'}, {'end': 26889.265, 'src': 'embed', 'start': 26839.568, 'weight': 3, 'content': [{'end': 26848.39, 'text': 'So when I run this program using cucumber feature, so you can see here that the feature was test Twitter,', 'start': 26839.568, 'duration': 8.822}, {'end': 26855.852, 'text': 'smoke scenario and then scenario was test the login with valid credentials, given whatever was there, when and then.', 'start': 26848.39, 'duration': 7.462}, {'end': 26859.613, 'text': 'so what it is telling one scenarios and one step.', 'start': 26855.852, 'duration': 3.761}, {'end': 26865.124, 'text': "but three are undefined and it's telling us you can implement the missing steps with the snippets below.", 'start': 26860.003, 'duration': 5.121}, {'end': 26869.586, 'text': 'So I will have to write the step definitions and the runner class for this,', 'start': 26865.164, 'duration': 4.422}, {'end': 26876.548, 'text': 'because that was what I told you when I was creating the steps at this first.', 'start': 26869.586, 'duration': 6.962}, {'end': 26884.55, 'text': 'I created the feature file and added the scenarios and next I have to write the runner class and add the step definitions to run the code.', 'start': 26876.628, 'duration': 7.922}, {'end': 26889.265, 'text': 'So that is what it is telling me to implement the missing steps with the snippets below.', 'start': 26885.123, 'duration': 4.142}], 'summary': 'Cucumber program detected 1 scenario and 1 step, with 3 undefined; requires writing step definitions and runner class.', 'duration': 49.697, 'max_score': 26839.568, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ26839568.jpg'}, {'end': 26963.698, 'src': 'embed', 'start': 26937.676, 'weight': 8, 'content': [{'end': 26947.883, 'text': 'So, whatever is there over here, given when, and then I have to write it like this at given same thing, open the Firefox and launch the application.', 'start': 26937.676, 'duration': 10.207}, {'end': 26948.864, 'text': 'same thing over here.', 'start': 26947.883, 'duration': 0.981}, {'end': 26950.565, 'text': "It's just within the double quotes.", 'start': 26948.984, 'duration': 1.581}, {'end': 26955.508, 'text': 'It should start with the powers to symbol and it should end with the dollar symbol.', 'start': 26951.045, 'duration': 4.463}, {'end': 26956.629, 'text': 'after that it is enclosed.', 'start': 26955.508, 'duration': 1.121}, {'end': 26963.698, 'text': 'So this is how you have to write it, and next the same method is written over here telling public void.', 'start': 26957.313, 'duration': 6.385}], 'summary': 'Instructions for writing and launching the application enclosed in quotes and symbols.', 'duration': 26.022, 'max_score': 26937.676, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ26937676.jpg'}, {'end': 27025.387, 'src': 'embed', 'start': 27000.457, 'weight': 5, 'content': [{'end': 27007.342, 'text': 'So here it will be like reset the credential and again creating a method and this step should click on the reset button.', 'start': 27000.457, 'duration': 6.885}, {'end': 27015.883, 'text': 'Okay, So, now that you wrote the step definitions and the feature, but where is the executable file for that??', 'start': 27007.763, 'duration': 8.12}, {'end': 27023.566, 'text': 'I have created a package called test runner and in that I have my runner class, which helps us to execute the project.', 'start': 27016.344, 'duration': 7.222}, {'end': 27025.387, 'text': 'So this is how you need to write it.', 'start': 27023.906, 'duration': 1.481}], 'summary': 'Creating test runner package with runner class for executing project.', 'duration': 24.93, 'max_score': 27000.457, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ27000457.jpg'}], 'start': 26067.492, 'title': 'Implementing hybrid driven framework & selenium-cucumber integration', 'summary': 'Discusses implementing a hybrid driven framework, advantages of cucumber for bdd, selenium and cucumber integration, testing twitter smoke scenario with cucumber, and configuring cucumber with selenium, providing insights into the benefits and successful execution of scenarios.', 'chapters': [{'end': 26306.911, 'start': 26067.492, 'title': 'Hybrid driven framework & cucumber for bdd', 'summary': 'Discusses the implementation of a hybrid driven framework, the advantages of using cucumber for behavior-driven development (bdd), and the process of writing bdd test scenarios in simple english, highlighting the flexibility of cucumber in supporting multiple languages and its integration with various web-based testing tools.', 'duration': 239.419, 'highlights': ["Explanation of Cucumber's flexibility in supporting multiple languages like Java, Ruby, C sharp, dotnet, and python, and its integration with selenium, Ruby on Rails, wait, IR, and other web-based testing tools. Cucumber is open source and allows writing test scripts in multiple languages like Java, Ruby, C sharp, dotnet, and python, and easily integrates with selenium, Ruby on Rails, wait, IR, and other web-based testing tools.", 'Description of behavior-driven development (BDD) as a technique for writing specifications or test cases in plain English sentences to facilitate understanding and collaboration by non-technical team members in the software development process. BDD involves writing specifications or test cases in plain English sentences to facilitate understanding and collaboration by non-technical team members in the software development process.', 'Demonstration of writing BDD test scenarios in simple English sentences, emphasizing the ease of understanding and absence of extensive coding. The process of writing BDD test scenarios involves using simple English sentences for ease of understanding, without requiring extensive coding.']}, {'end': 26820.946, 'start': 26307.371, 'title': 'Selenium and cucumber integration', 'summary': "Covers the essentials of selenium and cucumber integration, including selenium's capabilities for automation testing of web applications, support for multiple programming languages and browsers, and the benefits of using cucumber for behavior-driven development and integrating it with selenium. it also details the prerequisites for using cucumber and the steps to create and configure a project in eclipse.", 'duration': 513.575, 'highlights': ["Essentials of Selenium and Cucumber Integration The chapter covers the essentials of Selenium and Cucumber integration, including Selenium's capabilities for automation testing of web applications, support for multiple programming languages and browsers, and the benefits of using Cucumber for behavior-driven development and integrating it with Selenium. It also details the prerequisites for using Cucumber and the steps to create and configure a project in Eclipse.", 'Support for Multiple Programming Languages and Browsers Selenium test scripts can be written in different programming languages, like Java, Python, C, sharp, Ruby, Etc, and all the selenium test scripts can run across various browsers like Chrome, Safari, Firefox, Opera, and also it provides support across various platforms like Windows, Mac OS, Linux, Solaris, Etc.', 'Benefits of Using Cucumber for Behavior-Driven Development Cucumber makes it easy to read and understand the application flow, serves as a bridge between different roles in an organization, and benefits the client to understand the application code as it uses georgian language, which is in plain text, enabling anyone in the organization to understand the behavior of the software.', 'Prerequisites for Using Cucumber The prerequisites for using Cucumber include selenium jar files, selenium standalone server, jar files for cucumber, Java installation, Eclipse, adding cucumber plug-in from the marketplace, and coding the program.', 'Steps to Create and Configure a Project in Eclipse The steps to create and configure a project in Eclipse include configuring the build path and adding all the necessary char files to the project, creating a feature file, writing the scenarios, creating the runner class, adding the step definitions, and running the code.']}, {'end': 27126.288, 'start': 26820.946, 'title': 'Testing twitter smoke scenario', 'summary': 'Discusses the process of creating a feature for testing twitter smoke scenario and login with valid credentials using cucumber, including defining the steps and executing the test cases, resulting in successful execution of the scenario with three steps passed.', 'duration': 305.342, 'highlights': ['Creating and Executing Test Cases The process involves creating a feature for testing Twitter smoke scenario and login with valid credentials using Cucumber, defining the steps and executing the test cases, resulting in successful execution of the scenario with three steps passed.', 'Defining Step Definitions and Runner Class The next steps involve writing the step definitions and the runner class for the created feature, including creating separate packages for step definitions, defining methods for opening the application, entering username and password, and clicking on the reset button.', 'Execution and Verification The execution of the test cases as JUnit tests results in one scenario and three steps passed within milliseconds, confirming the successful execution of the defined steps for opening the application, entering username and password, and clicking on the reset button.']}, {'end': 27417.194, 'start': 27126.468, 'title': 'Configuring cucumber with selenium', 'summary': "Discusses configuring cucumber with selenium, including adding necessary jar files, writing feature files and step definitions, and running the test to successfully navigate twitter's login page and verify a successful login.", 'duration': 290.726, 'highlights': ["Configuring Cucumber with Selenium The chapter discusses configuring Cucumber with Selenium, including adding necessary jar files, writing feature files and step definitions, and running the test to successfully navigate Twitter's login page and verify a successful login.", "Running the test for Twitter's login functionality The test successfully navigates through Twitter's login page, enters valid credentials, and verifies a successful login, with all three steps passing.", 'Adding selenium jar files and selenium standalone server The discussion includes the option of adding selenium jar files or a standalone server, providing flexibility in the configuration process.']}], 'duration': 1349.702, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ26067492.jpg', 'highlights': ['Cucumber supports multiple languages and integrates with selenium, Ruby on Rails, and other web-based testing tools.', 'Behavior-driven development (BDD) involves writing specifications in plain English sentences to facilitate understanding and collaboration.', 'Writing BDD test scenarios involves using simple English sentences for ease of understanding, without requiring extensive coding.', 'Selenium test scripts can be written in different programming languages and run across various browsers and platforms.', 'Cucumber makes it easy to read and understand the application flow, serving as a bridge between different roles in an organization.', 'Prerequisites for using Cucumber include selenium jar files, selenium standalone server, jar files for cucumber, and Eclipse.', 'Steps to create and configure a project in Eclipse include configuring the build path, adding necessary char files, creating a feature file, writing scenarios, creating the runner class, adding step definitions, and running the code.', 'Creating a feature for testing Twitter smoke scenario and login with valid credentials using Cucumber results in successful execution of the scenario with three steps passed.', 'Writing step definitions and the runner class for the created feature involves creating separate packages, defining methods for opening the application, entering username and password, and clicking on the reset button.', 'Execution of the test cases as JUnit tests results in one scenario and three steps passed within milliseconds, confirming the successful execution of the defined steps.', "Configuring Cucumber with Selenium includes adding necessary jar files, writing feature files and step definitions, and running the test to successfully navigate Twitter's login page and verify a successful login.", "The test successfully navigates through Twitter's login page, enters valid credentials, and verifies a successful login, with all three steps passing.", 'The option of adding selenium jar files or a standalone server provides flexibility in the configuration process.']}, {'end': 28632.664, 'segs': [{'end': 27469.102, 'src': 'embed', 'start': 27437.861, 'weight': 7, 'content': [{'end': 27445.767, 'text': 'So this is how I integrated selenium with cucumber and executed the test cases on Mozilla Firefox browser.', 'start': 27437.861, 'duration': 7.906}, {'end': 27454.354, 'text': "Yes So that's how you need to use cucumber with selenium in order to perform testing of a website or a web application.", 'start': 27446.227, 'duration': 8.127}, {'end': 27462.741, 'text': "Let's understand what is page object model.", 'start': 27460.599, 'duration': 2.142}, {'end': 27469.102, 'text': 'Page object model is a design pattern to create object repository for the web user interface elements.', 'start': 27463.405, 'duration': 5.697}], 'summary': 'Integrated selenium with cucumber for test cases on mozilla firefox browser, using page object model.', 'duration': 31.241, 'max_score': 27437.861, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ27437861.jpg'}, {'end': 27647.08, 'src': 'embed', 'start': 27621.152, 'weight': 8, 'content': [{'end': 27629.575, 'text': 'quality analyst or quality assurance engineer needs to walk through whole codes to update locators wherever necessary, and updating elements,', 'start': 27621.152, 'duration': 8.423}, {'end': 27633.717, 'text': 'locators and duplicate code will consume a lot of time to adjust locators.', 'start': 27629.575, 'duration': 4.142}, {'end': 27637.699, 'text': 'Why this time can be consumed to increase the coverage.', 'start': 27634.277, 'duration': 3.422}, {'end': 27642.261, 'text': 'We can save this time by using page object model in our automation framework.', 'start': 27638.139, 'duration': 4.122}, {'end': 27647.08, 'text': 'So assume that a web page has an X elements and you write a test script for that.', 'start': 27642.978, 'duration': 4.102}], 'summary': 'Updating locators and duplicate code consumes time, but can be saved using page object model in automation framework.', 'duration': 25.928, 'max_score': 27621.152, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ27621152.jpg'}, {'end': 27853.053, 'src': 'embed', 'start': 27816.283, 'weight': 10, 'content': [{'end': 27822.487, 'text': "So that's all about how page object model can be implemented with the help of page Factory and without the page Factory.", 'start': 27816.283, 'duration': 6.204}, {'end': 27824.629, 'text': "Now, let's dive into some practicals.", 'start': 27822.988, 'duration': 1.641}, {'end': 27830.564, 'text': 'First I will create a simple project with form without using the page Factory.', 'start': 27825.802, 'duration': 4.762}, {'end': 27837.468, 'text': 'then I will show you the working of the same project with the help of page Factory, so that you can understand the difference between the two.', 'start': 27830.564, 'duration': 6.904}, {'end': 27853.053, 'text': 'So I have created a project called edureka selenium project and in that I have created a package that is coder and Eureka dot pages and inside that I have only one file that is test ng.', 'start': 27838.668, 'duration': 14.385}], 'summary': 'Comparison of implementing page object model with and without page factory in a selenium project.', 'duration': 36.77, 'max_score': 27816.283, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ27816283.jpg'}, {'end': 28276.361, 'src': 'embed', 'start': 28251.771, 'weight': 11, 'content': [{'end': 28260.514, 'text': 'I created a class and I have declared my web driver as null and I have set my system properties for my chrome driver and I am again.', 'start': 28251.771, 'duration': 8.743}, {'end': 28265.076, 'text': "I'm using the implicitly wait and what I am doing using driver dot get.", 'start': 28260.514, 'duration': 4.562}, {'end': 28266.917, 'text': "I'm navigating through facebook.com.", 'start': 28265.076, 'duration': 1.841}, {'end': 28273.7, 'text': 'So initially when the Chrome driver launches Google Chrome, it should simply navigate through facebook.com.', 'start': 28267.397, 'duration': 6.303}, {'end': 28276.361, 'text': 'Okay, and after suit what it should do.', 'start': 28274, 'duration': 2.361}], 'summary': 'Creating a class with web driver, setting chrome driver properties, navigating to facebook.com.', 'duration': 24.59, 'max_score': 28251.771, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28251771.jpg'}, {'end': 28355.565, 'src': 'embed', 'start': 28326.543, 'weight': 1, 'content': [{'end': 28335.091, 'text': "That is, I'm creating an object of a home page and passing the parameters as my driver and the home page that is FB home page.", 'start': 28326.543, 'duration': 8.548}, {'end': 28340.135, 'text': 'that is this file dot class and from that I am performing two actions, that is,', 'start': 28335.091, 'duration': 5.044}, {'end': 28344.117, 'text': 'I want to click on the profile drop-down and I want to hit the logout link.', 'start': 28340.595, 'duration': 3.522}, {'end': 28346.779, 'text': "So basically I'm performing five actions here.", 'start': 28344.618, 'duration': 2.161}, {'end': 28355.565, 'text': 'One is passing the variable or the value for my email ID and password and hit on the login button using the first login page and using the home page.', 'start': 28346.899, 'duration': 8.666}], 'summary': 'Creating a home page object, performing 5 actions including login and logout.', 'duration': 29.022, 'max_score': 28326.543, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28326543.jpg'}, {'end': 28459.063, 'src': 'embed', 'start': 28436.334, 'weight': 9, 'content': [{'end': 28446.418, 'text': "Why? because I'm referring to the class file of the login page and that's the reason it will refer from there and it will hit on the login button and again that will also refer to this one.", 'start': 28436.334, 'duration': 10.084}, {'end': 28451.869, 'text': 'So basically what it is doing it is giving an action call to these elements.', 'start': 28447.074, 'duration': 4.795}, {'end': 28459.063, 'text': 'to refer to these email text box password text box and sign in button to perform an action on that.', 'start': 28452.6, 'duration': 6.463}], 'summary': 'Referring to class file of login page, giving action call to email text box, password text box, and sign in button.', 'duration': 22.729, 'max_score': 28436.334, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28436334.jpg'}, {'end': 28532.149, 'src': 'embed', 'start': 28502.698, 'weight': 2, 'content': [{'end': 28506.48, 'text': "and that's the reason I'm giving the chat dot sleep as 4000, that is a four milliseconds.", 'start': 28502.698, 'duration': 3.782}, {'end': 28509.162, 'text': 'So here I have the FB home page.', 'start': 28507.061, 'duration': 2.101}, {'end': 28517.656, 'text': "In this, I'm using the find by notation to find the locators by XPath and this is the XPath to click on the account settings.", 'start': 28510.169, 'duration': 7.487}, {'end': 28521.259, 'text': "that is a drop-down, and using the link text, what I'm doing.", 'start': 28517.656, 'duration': 3.603}, {'end': 28532.149, 'text': "I'm again using the link text pleasant on logout and the web element will be logout link for this logout locator and the web element will be profile drop-down for the account settings.", 'start': 28521.339, 'duration': 10.81}], 'summary': 'Setting chat sleep as 4000ms, finding and clicking elements using xpath and link text.', 'duration': 29.451, 'max_score': 28502.698, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28502698.jpg'}, {'end': 28588.88, 'src': 'embed', 'start': 28541.076, 'weight': 0, 'content': [{'end': 28546.099, 'text': 'these things are the call to action from this FB home page.', 'start': 28541.076, 'duration': 5.023}, {'end': 28553.797, 'text': 'So this is all about how you can actually write the test case classes in different file and the pages,', 'start': 28546.932, 'duration': 6.865}, {'end': 28557.059, 'text': 'or your test scripts regarding your locators and everything in the different file.', 'start': 28553.797, 'duration': 3.262}, {'end': 28566.165, 'text': 'So now what I will do the name of my file will be page object model project and the class name will be the test base because inside my test base.', 'start': 28557.479, 'duration': 8.686}, {'end': 28571.009, 'text': 'I have the before suit and after suit annotation where I have to execute and in FB login test.', 'start': 28566.225, 'duration': 4.784}, {'end': 28574.571, 'text': 'There is a attest annotation in which I have to perform all these actions.', 'start': 28571.449, 'duration': 3.122}, {'end': 28580.455, 'text': "So now let's run and check the working of that and the output as well.", 'start': 28575.832, 'duration': 4.623}, {'end': 28588.88, 'text': 'So first SNG detected the version and Chrome travel launch to Google Chrome navigated through facebook.com.', 'start': 28581.395, 'duration': 7.485}], 'summary': 'Demonstrating separating test case classes and locators in different files for the page object model project, with test base class containing before suit and after suit annotations.', 'duration': 47.804, 'max_score': 28541.076, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28541076.jpg'}], 'start': 27417.694, 'title': 'Integrating selenium with page object model', 'summary': 'Details the integration of selenium with cucumber for executing test cases on mozilla firefox browser, explains the page object model design pattern, and demonstrates the execution of selenium projects, setting up chrome driver and testng xml, and implementing a simple page object model with a gap of 4 milliseconds between actions.', 'chapters': [{'end': 27537.97, 'start': 27417.694, 'title': 'Integrating selenium with cucumber and page object model', 'summary': 'Details the integration of selenium with cucumber for executing test cases on mozilla firefox browser, and explains the page object model design pattern and its benefits in creating object repository for web user interface elements.', 'duration': 120.276, 'highlights': ['Explaining Page Object Model design pattern and its benefits Details the Page Object Model design pattern, including creating object repository for web user interface elements, corresponding page classes, page methods, and the benefits of storing locators and test scripts separately.', 'Integrating Selenium with Cucumber to execute test cases on Mozilla Firefox browser Describes the integration process of Selenium with Cucumber and the execution of test cases on Mozilla Firefox browser.', 'Using Cucumber with Selenium for website and web application testing Highlights the need to use Cucumber with Selenium for testing websites and web applications, emphasizing the importance of the integration.']}, {'end': 27837.468, 'start': 27538.39, 'title': 'Page object model and page factory', 'summary': 'Discusses the importance of using page object model to manage locators, highlighting the challenges of duplicated code and the benefits of using a separate class file for maintaining web elements. it also emphasizes the advantages of page object model, including keeping tests and element locators separately, integrating the repository with different frameworks, and enabling easy implementation of ui changes. additionally, it explores the concept of page factory and its optimized usage in implementing page object model.', 'duration': 299.078, 'highlights': ['Page object model emphasizes the importance of using a separate class file to manage web elements, reducing the need to change locators in multiple scripts and making the code reusable and maintainable. With 10 different scripts using the same page element, any change in that element requires updating all 10 scripts, leading to time-consuming and error-prone maintenance. Utilizing a separate class file for finding, filling, or verifying web elements ensures that changes only need to be made in one class file, making the code reusable, readable, and maintainable.', 'The advantages of page object model include keeping tests and element locators separately, integrating the repository with different frameworks, and enabling easy implementation of UI changes. By keeping tests and element locators separate, the code remains clean, easy to understand, and maintainable. Additionally, the approach makes the test automation framework programmer friendly, more durable, and comprehensive. The independent page object repository allows integration with various tools and frameworks, leading to shorter and optimized test cases.', 'Page Factory serves as an inbuilt concept for implementing page object model in Selenium WebDriver, optimizing the separation of page object repository and test methods. Page Factory facilitates the use of annotations, such as @FindBy, to find web elements and the initElements method to initialize web elements. It can be implemented with or without Page Factory, offering optimizations in terms of imports and cash storage.']}, {'end': 28014.792, 'start': 27838.668, 'title': 'Selenium project execution and workflow', 'summary': 'Demonstrates the execution of a selenium project, detailing the workflow and code structure, including the automatic navigation through facebook and the usage of webdriver and test annotations.', 'duration': 176.124, 'highlights': ['The execution of the Selenium project is demonstrated, including automatic navigation through Facebook, and the usage of WebDriver and test annotations. Execution of Selenium project, navigation through Facebook, usage of WebDriver and test annotations', 'The code structure is explained, outlining the process of importing packages, creating a class, declaring variables, and utilizing find element methods with IDs. Importing packages, creating class, declaring variables, using find element methods with IDs', 'The process of entering values for username and password, clicking the login button, and automatic navigation to the Facebook home page is detailed. Entering values for username and password, clicking login button, automatic navigation to Facebook home page']}, {'end': 28187.88, 'start': 28015.353, 'title': 'Setting up chrome driver and testng xml', 'summary': 'Discusses setting up the chrome driver and testng xml file for automation testing, including using system.set property to configure the driver, implicitly wait for 10 seconds, and navigating through a website using driver.get method.', 'duration': 172.527, 'highlights': ['Using system.set property to set driver configuration for Chrome browser and website navigation The speaker uses system.set property to configure the Chrome driver for launching the browser and navigating to a specific website.', 'Utilizing implicitly wait to wait for 10 seconds for website loading The speaker mentions using implicitly wait for 10 seconds to ensure that the website or web application loads properly, regardless of its load time.', 'Navigating through a website using driver.get method and quitting the driver after execution The speaker explains the usage of the driver.get method to navigate through a website and the option to quit the driver after the execution is completed.', 'Configuring TestNG XML file with test name, suite name, and class reference for annotations The discussion involves configuring the TestNG XML file with the test name, suite name, and class reference for annotations such as @BeforeMethod and @AfterMethod.']}, {'end': 28632.664, 'start': 28188.34, 'title': 'Implementing page object model', 'summary': 'Explains the implementation of a simple page object model and the usage of page factory for maintaining separate class files for pages, locators, and test cases, enhancing test automation framework performance and maintainability, and demonstrating the execution of the test cases with a gap of 4 milliseconds between actions.', 'duration': 444.324, 'highlights': ['The implementation of a simple page object model and usage of page Factory for maintaining separate class files for pages, locators, and test cases The chapter provides a detailed explanation of how to implement a simple page object model and the usage of page Factory to maintain separate class files for pages, locators, and test cases, enhancing the performance and maintainability of the test automation framework.', 'Demonstration of the execution of the test cases with a gap of 4 milliseconds between actions The test cases are demonstrated to be executed with a deliberate gap of 4 milliseconds between actions, allowing for precise monitoring and understanding of the test case execution.']}], 'duration': 1214.97, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ27417694.jpg', 'highlights': ['Details the integration of Selenium with Cucumber for executing test cases on Mozilla Firefox browser', 'Explains the Page Object Model design pattern, including creating object repository for web user interface elements, corresponding page classes, page methods, and the benefits of storing locators and test scripts separately', 'Demonstrates the execution of Selenium projects, setting up Chrome driver and TestNG XML, and implementing a simple Page Object Model with a gap of 4 milliseconds between actions', 'Page Object Model emphasizes the importance of using a separate class file to manage web elements, reducing the need to change locators in multiple scripts and making the code reusable and maintainable', 'The advantages of Page Object Model include keeping tests and element locators separately, integrating the repository with different frameworks, and enabling easy implementation of UI changes', 'Page Factory serves as an inbuilt concept for implementing Page Object Model in Selenium WebDriver, optimizing the separation of page object repository and test methods', 'The execution of the Selenium project is demonstrated, including automatic navigation through Facebook, and the usage of WebDriver and test annotations', 'Using system.set property to set driver configuration for Chrome browser and website navigation', 'Utilizing implicitly wait to wait for 10 seconds for website loading', 'Configuring TestNG XML file with test name, suite name, and class reference for annotations', 'The implementation of a simple Page Object Model and usage of Page Factory for maintaining separate class files for pages, locators, and test cases', 'Demonstration of the execution of the test cases with a gap of 4 milliseconds between actions']}, {'end': 29982.845, 'segs': [{'end': 28667.676, 'src': 'embed', 'start': 28633.383, 'weight': 3, 'content': [{'end': 28641.032, 'text': "and how I also wanted to show you how the actual flow work and that's a reason I gave a thread dot sleep as 4 milliseconds.", 'start': 28633.383, 'duration': 7.649}, {'end': 28648.94, 'text': 'So this is how you need to create a separate packages for test case classes and the script classes and finally,', 'start': 28641.793, 'duration': 7.147}, {'end': 28651.003, 'text': 'you have to write a test ng dot XML file.', 'start': 28648.94, 'duration': 2.063}, {'end': 28655.004, 'text': 'So, basically, this is all about the page object, model, design pattern,', 'start': 28651.821, 'duration': 3.183}, {'end': 28667.676, 'text': 'where you will be having the pages and this FB login page and FB home page and you will be having the test where these two will be interlinked and the home page and FB login page will be having a test case month and in the test base.', 'start': 28655.004, 'duration': 12.672}], 'summary': 'Demonstrated flow with 4ms delay, separate packages, and page object model design pattern.', 'duration': 34.293, 'max_score': 28633.383, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28633383.jpg'}, {'end': 28748.818, 'src': 'embed', 'start': 28674.443, 'weight': 0, 'content': [{'end': 28682.83, 'text': "Okay, and this test base will refer to FB login test, because test base contains only at before suit and at after suit and there's no at test,", 'start': 28674.443, 'duration': 8.387}, {'end': 28684.131, 'text': 'and this will refer to this class.', 'start': 28682.83, 'duration': 1.301}, {'end': 28688.453, 'text': 'So this is all about how you can define a page object model design pattern.', 'start': 28684.151, 'duration': 4.302}, {'end': 28694.195, 'text': 'And if you wish to know more about it, you can check out our edureka course on selenium certification training,', 'start': 28688.853, 'duration': 5.342}, {'end': 28700.758, 'text': 'where these topics are carried out or thought in a broader gorge, and you will get well versed with selenium.', 'start': 28694.195, 'duration': 6.563}, {'end': 28712.038, 'text': "Let's first understand what is JDBC that this Java database connectivity.", 'start': 28706.937, 'duration': 5.101}, {'end': 28721.98, 'text': 'It is one of the standard Java API for database independent connectivity between the Java programming language and a wide range of databases.', 'start': 28712.578, 'duration': 9.402}, {'end': 28728.502, 'text': 'this application programming interface lets you encode the access request statements and structured query language.', 'start': 28721.98, 'duration': 6.522}, {'end': 28732.87, 'text': 'They are then passed to the program that manages the database.', 'start': 28729.548, 'duration': 3.322}, {'end': 28742.915, 'text': 'It mainly involves opening a connection, creating SQL database, executing the SQL queries and then arriving at the output,', 'start': 28733.47, 'duration': 9.445}, {'end': 28748.818, 'text': 'and we can use this JDBC API to access tabular data stored in the relational database.', 'start': 28742.915, 'duration': 5.903}], 'summary': 'The transcript covers page object model, jdbc for database connectivity, and its usage for accessing tabular data in a relational database.', 'duration': 74.375, 'max_score': 28674.443, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28674443.jpg'}, {'end': 29341.734, 'src': 'embed', 'start': 29318.269, 'weight': 5, 'content': [{'end': 29324.831, 'text': "I'm using the connection object and I'm trying to get the connection using driver manager dot get connection.", 'start': 29318.269, 'duration': 6.562}, {'end': 29335.412, 'text': "I'll specify the database URL that will be this one and then I specify the database credentials at this username and password after that.", 'start': 29325.291, 'duration': 10.121}, {'end': 29338.453, 'text': 'What was the next step? The next step was to execute the query.', 'start': 29335.512, 'duration': 2.941}, {'end': 29341.734, 'text': "So for that what I'll do I'll use a statement object.", 'start': 29338.933, 'duration': 2.801}], 'summary': 'Using drivermanager to get connection, specifying database url, credentials, and executing query using statement object.', 'duration': 23.465, 'max_score': 29318.269, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29318269.jpg'}, {'end': 29726.018, 'src': 'embed', 'start': 29677.802, 'weight': 1, 'content': [{'end': 29683.827, 'text': 'So you can see it comes under the package or G dot annotations dot before test.', 'start': 29677.802, 'duration': 6.025}, {'end': 29688.691, 'text': 'so it can be written like target value of the method retention and documented.', 'start': 29683.827, 'duration': 4.864}, {'end': 29695.077, 'text': 'So first I will create a method called setup which throws the exception inside the try block.', 'start': 29689.292, 'duration': 5.785}, {'end': 29701.142, 'text': "I will first make the database connection telling string DB class is equal to I'll specify my driver.", 'start': 29695.237, 'duration': 5.905}, {'end': 29703.73, 'text': 'and I want to get the connection for that.', 'start': 29701.949, 'duration': 1.781}, {'end': 29711.012, 'text': "So what I will do I'll create connection con is equal to driver manager dot get connection as specified the database URL.", 'start': 29703.87, 'duration': 7.142}, {'end': 29725.178, 'text': "I'll write the username and the database password and next I want the statement object to send the SQL statement to the database and for that what I will say I will tell statement is equal to connection dot,", 'start': 29712.533, 'duration': 12.645}, {'end': 29726.018, 'text': 'create statement.', 'start': 29725.178, 'duration': 0.84}], 'summary': 'Demonstrates using annotations in test setup with method creation and database connection establishment.', 'duration': 48.216, 'max_score': 29677.802, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29677802.jpg'}, {'end': 29779.773, 'src': 'embed', 'start': 29750.229, 'weight': 9, 'content': [{'end': 29758.074, 'text': 'After that I will create a result set, that is, it will help us to get the contents of the user information table from DB, that is,', 'start': 29750.229, 'duration': 7.845}, {'end': 29759.254, 'text': 'from the employees table.', 'start': 29758.074, 'duration': 1.18}, {'end': 29764.237, 'text': 'Okay, so that will be result set.', 'start': 29759.274, 'duration': 4.963}, {'end': 29772.002, 'text': "result is equal to statement dot execute query because I am passing here as query, because I'm using it here as query only.", 'start': 29764.237, 'duration': 7.765}, {'end': 29779.773, 'text': 'And now I want to print the results until all the records are printed and result dot next method returns true.', 'start': 29772.848, 'duration': 6.925}], 'summary': 'Creating a result set to retrieve user information from the employees table in the database.', 'duration': 29.544, 'max_score': 29750.229, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29750229.jpg'}, {'end': 29839.581, 'src': 'embed', 'start': 29811.212, 'weight': 2, 'content': [{'end': 29818.457, 'text': "So now let's see what will happen when we execute this test case before that you just have to check the build path.", 'start': 29811.212, 'duration': 7.245}, {'end': 29824.447, 'text': "So you can see there's a my SQL connector jar.", 'start': 29821.244, 'duration': 3.203}, {'end': 29828.731, 'text': "There is selenium jars and there's a test ng library.", 'start': 29824.787, 'duration': 3.944}, {'end': 29830.513, 'text': 'Then there is maven dependencies.', 'start': 29828.831, 'duration': 1.682}, {'end': 29832.234, 'text': 'There is selenium server as well.', 'start': 29830.613, 'duration': 1.621}, {'end': 29835.877, 'text': 'Okay, so I want to run this as a test ng test.', 'start': 29832.554, 'duration': 3.323}, {'end': 29839.581, 'text': "So once I run this let's check what happens with output.", 'start': 29836.398, 'duration': 3.183}], 'summary': 'Executing test case with mysql connector, selenium jars, testng library, maven dependencies, and selenium server.', 'duration': 28.369, 'max_score': 29811.212, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29811212.jpg'}, {'end': 29963.77, 'src': 'embed', 'start': 29932.913, 'weight': 6, 'content': [{'end': 29944.539, 'text': 'So test ng is running so you can see it printed the values present in that database, which is Select star from records.', 'start': 29932.913, 'duration': 11.626}, {'end': 29947.461, 'text': 'It just has one name and one ID.', 'start': 29945.12, 'duration': 2.341}, {'end': 29952.424, 'text': 'Okay, So first it printed one name and one ID and then it showed the exception,', 'start': 29947.861, 'duration': 4.563}, {'end': 29960.828, 'text': 'because I am trying to get the result from the rest of the three things, which is suitable for the EMP database.', 'start': 29952.424, 'duration': 8.404}, {'end': 29963.77, 'text': 'But with this case there is no any records.', 'start': 29960.888, 'duration': 2.882}], 'summary': 'Test ng ran and printed values from database with one name and one id, but exception occurred when trying to get result for the rest of the three things suitable for the emp database.', 'duration': 30.857, 'max_score': 29932.913, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29932913.jpg'}], 'start': 28633.383, 'title': 'Test automation and database integration', 'summary': "Explains the page object model in selenium, jdbc and mysql commands overview, selenium for web testing and database integration, and database testing with testng, covering topics such as separate packages for test case and script classes, before suit and after suit usage, jdbc components, mysql commands, selenium's flexibility, and integration with testng for test reports, and successful database testing with testng.", 'chapters': [{'end': 28694.195, 'start': 28633.383, 'title': 'Page object model design pattern', 'summary': 'Explains the page object model design pattern in selenium, emphasizing the need for separate packages for test case and script classes, as well as the creation of a testng.xml file. it also mentions the interlinking of test cases and the usage of before suit and after suit in the test base class.', 'duration': 60.812, 'highlights': ['The need for separate packages for test case and script classes, and the creation of a testng.xml file', 'Interlinking of test cases and the usage of before suit and after suit in the test base class', 'Explanation of the Page Object Model design pattern in Selenium']}, {'end': 29512.156, 'start': 28694.195, 'title': 'Jdbc and mysql commands overview', 'summary': 'Provides an overview of jdbc, mysql commands, and the process of creating a jdbc application, covering topics such as jdbc components, mysql commands for database and table creation, insertion and retrieval of data, and the steps involved in creating a jdbc application. it also demonstrates how to create a jdbc application and perform database testing.', 'duration': 817.961, 'highlights': ['JDBC components include driver manager, driver, and connection, which are essential for establishing a database connection. JDBC comprises components like driver manager, driver, and connection, essential for establishing a database connection.', 'The process of creating a JDBC application involves importing packages, registering the driver, opening a connection, executing the query, extracting data from the result set, and cleaning up the environment. The process of creating a JDBC application involves importing packages, registering the driver, opening a connection, executing the query, extracting data from the result set, and cleaning up the environment.', 'The MySQL commands demonstrated include creating a database, dropping a database, creating a table, dropping a table, inserting values into a table, and displaying the records. The demonstrated MySQL commands include creating a database, dropping a database, creating a table, dropping a table, inserting values into a table, and displaying the records.']}, {'end': 29795.303, 'start': 29512.196, 'title': 'Selenium for web testing and database integration', 'summary': 'Discusses the usage of selenium for web application testing, including its flexibility in supporting various programming languages, browsers, and platforms, as well as its integration with testng for generating test reports. it also details the integration of selenium with databases using jdbc and odbc, specifically focusing on mysql, to fetch and verify data tables.', 'duration': 283.107, 'highlights': ["Selenium's flexibility in supporting various programming languages, browsers, and platforms Selenium can run test scripts written in different programming languages like Java, Python, C#, and more, across browsers such as Chrome, Safari, Firefox, and Opera, and is compatible with platforms like Windows, Mac, Linux, and Solaris.", 'Integration of Selenium with TestNG for generating test reports and tracking test case results TestNG, an automation testing framework, provides the ability to generate comprehensive test reports, track the number of passed, failed, and skipped test cases, and integrates annotations similar to JUnit.', 'Integrating Selenium with databases using JDBC and ODBC for database testing While Selenium does not directly support database testing, it can be partially achieved using JDBC and ODBC, enabling connectivity to databases like MySQL and Oracle to fetch and verify data tables.']}, {'end': 29982.845, 'start': 29795.583, 'title': 'Database testing with testng', 'summary': 'Covers the implementation of database testing using testng, including setting up the environment, executing test cases, and handling exceptions, resulting in successful test runs with no failures or skips.', 'duration': 187.262, 'highlights': ['The test run was one, with no failures and no skips, indicating a successful execution of the database testing using TestNG. The default test report showed that the test run was one, with no failures and no skips.', 'Executing the test case printed the values from the database and showed an exception when attempting to retrieve additional records, demonstrating the interaction between the test case and the database. Executing the test case printed the values from the database and showed an exception when attempting to retrieve additional records.', "The method 'teardown' was created to close the connection after the test, ensuring proper cleanup of resources and maintaining the integrity of the testing environment. A method called 'teardown' was created to close the connection after the test, ensuring proper cleanup of resources."]}], 'duration': 1349.462, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ28633383.jpg', 'highlights': ["Selenium's flexibility in supporting various programming languages, browsers, and platforms", 'Integration of Selenium with TestNG for generating test reports and tracking test case results', 'The need for separate packages for test case and script classes, and the creation of a testng.xml file', 'The process of creating a JDBC application involves importing packages, registering the driver, opening a connection, executing the query, extracting data from the result set, and cleaning up the environment', 'The MySQL commands demonstrated include creating a database, dropping a database, creating a table, dropping a table, inserting values into a table, and displaying the records', 'The test run was one, with no failures and no skips, indicating a successful execution of the database testing using TestNG', 'Interlinking of test cases and the usage of before suit and after suit in the test base class', 'Integrating Selenium with databases using JDBC and ODBC for database testing', 'Executing the test case printed the values from the database and showed an exception when attempting to retrieve additional records, demonstrating the interaction between the test case and the database', "The method 'teardown' was created to close the connection after the test, ensuring proper cleanup of resources and maintaining the integrity of the testing environment", 'Explanation of the Page Object Model design pattern in Selenium', 'JDBC components include driver manager, driver, and connection, which are essential for establishing a database connection']}, {'end': 31098.243, 'segs': [{'end': 30214.513, 'src': 'embed', 'start': 30186.272, 'weight': 0, 'content': [{'end': 30191.275, 'text': 'Everything was being controlled by automated test software and everything was done by itself.', 'start': 30186.272, 'duration': 5.003}, {'end': 30193.156, 'text': 'So basically what happened?', 'start': 30191.776, 'duration': 1.38}, {'end': 30200.981, 'text': 'it first navigated through Edureka website, then entered the credentials for username and password and hit the login button.', 'start': 30193.156, 'duration': 7.825}, {'end': 30209.647, 'text': 'then it clicked on your profile and navigated through my profile where you can update your details, like personal details, career, interest,', 'start': 30200.981, 'duration': 8.666}, {'end': 30214.513, 'text': 'everything, and then it navigated back through your main page and it logged out.', 'start': 30209.647, 'duration': 4.866}], 'summary': 'Automated test software navigated through website, entered credentials, updated details, and logged out.', 'duration': 28.241, 'max_score': 30186.272, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ30186272.jpg'}, {'end': 30283.391, 'src': 'embed', 'start': 30257.151, 'weight': 6, 'content': [{'end': 30260.932, 'text': 'If you are using Mozilla Firefox browser, you can use Gecko driver.', 'start': 30257.151, 'duration': 3.781}, {'end': 30264.172, 'text': 'There are different drivers for all the different types of browsers.', 'start': 30261.172, 'duration': 3}, {'end': 30270.353, 'text': 'Yes, Now, using the driver.get, you will navigate through Edureka website,', 'start': 30264.652, 'duration': 5.701}, {'end': 30277.095, 'text': 'and the first thing that I done when I navigated through Edureka website was I want to click on the login button.', 'start': 30270.353, 'duration': 6.742}, {'end': 30283.391, 'text': 'Yes So what happened I gave driver dot find element by link text.', 'start': 30277.435, 'duration': 5.956}], 'summary': 'Gecko driver for firefox, navigation to edureka website, and locating login button.', 'duration': 26.24, 'max_score': 30257.151, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ30257151.jpg'}, {'end': 30510.868, 'src': 'embed', 'start': 30484.907, 'weight': 7, 'content': [{'end': 30493.593, 'text': "So you can see that I'm writing the same with expat that is I'm clicking on the my profile and after that there's a menu that is a drop-down menu.", 'start': 30484.907, 'duration': 8.686}, {'end': 30496.996, 'text': "I'll just show you how it will work.", 'start': 30494.254, 'duration': 2.742}, {'end': 30503.861, 'text': 'So this is a drop-down menu and I want to choose my profile from this.', 'start': 30500.158, 'duration': 3.703}, {'end': 30510.868, 'text': "So for that what I'm doing, I'm writing it by expat that is a drop-down menu user to find out my profile.", 'start': 30504.702, 'duration': 6.166}], 'summary': "Demonstrating use of expat to select 'my profile' from drop-down menu.", 'duration': 25.961, 'max_score': 30484.907, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ30484907.jpg'}, {'end': 30644.757, 'src': 'embed', 'start': 30618.836, 'weight': 5, 'content': [{'end': 30624.68, 'text': 'So what it should do it should enter the career interest as software testing and that should be visible.', 'start': 30618.836, 'duration': 5.844}, {'end': 30627.962, 'text': 'So, unless and until that, it will be waiting.', 'start': 30624.74, 'duration': 3.222}, {'end': 30635.928, 'text': 'after that next step is select from the drop-down employment type and find it by XPath and choose it as both.', 'start': 30627.962, 'duration': 7.966}, {'end': 30637.99, 'text': 'it will be like permanent contract or both.', 'start': 30635.928, 'duration': 2.062}, {'end': 30642.375, 'text': "So I'm choosing it as both next option is drop-down CTC.", 'start': 30638.371, 'duration': 4.004}, {'end': 30644.757, 'text': "So I'm locating with the help of X path.", 'start': 30642.895, 'duration': 1.862}], 'summary': 'Enter career interest as software testing, select employment type as both, and locate ctc using xpath.', 'duration': 25.921, 'max_score': 30618.836, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ30618836.jpg'}], 'start': 29982.925, 'title': 'Automating website interactions', 'summary': 'Explains automating website interactions with selenium, covering successful navigation, element location, and actions such as clicking and entering text. it emphasizes using gecko driver for mozilla firefox and xpath for complex element location, with a focus on ensuring no test failures or skips.', 'chapters': [{'end': 30257.011, 'start': 29982.925, 'title': 'Automating edureka website with selenium', 'summary': 'Demonstrates how to automate the edureka website using selenium and testng, ensuring successful navigation, updating of user details, and logging out, with all tests passing and no failures or skips.', 'duration': 274.086, 'highlights': ['Selenium is used to automate the navigation and actions on the Edureka website, including logging in, updating user details, and logging out, ensuring successful execution with no failures or skips.', 'The script successfully navigates through the Edureka website, enters login credentials, updates personal details and career interests, and then logs out, with all tests passing and no failures or skips.']}, {'end': 30552.91, 'start': 30257.151, 'title': 'Automating website interactions with selenium', 'summary': 'Explains using selenium for automating website interactions, including navigating to the edureka website, locating elements using different locators, and performing actions such as clicking on buttons and entering text, with emphasis on using gecko driver for mozilla firefox and xpath for complex element location.', 'duration': 295.759, 'highlights': ['Using Gecko driver for automating interactions in Mozilla Firefox browser The chapter discusses the use of Gecko driver for automating website interactions in Mozilla Firefox browser.', 'Navigating to Edureka website and locating the login button using link text locator The chapter demonstrates navigating to the Edureka website and locating the login button using the link text locator to automate interactions.', 'Locating elements and performing actions using XPath and other locators The transcript provides insights into using locators such as XPath and ID to locate elements on a web page and perform actions such as clicking and entering text.']}, {'end': 30781.097, 'start': 30553.571, 'title': 'Automated testing script execution', 'summary': 'Details the process of executing an automated testing script for updating personal details, career interests, and user preferences on a website, including navigating through pages, entering values, and verifying elements, with a focus on software testing, employment type, and relocation preferences.', 'duration': 227.526, 'highlights': ['The process involves navigating through the website, entering personal details, career interests, and user preferences, with a focus on software testing, employment type, and relocation preferences.', "Elements are located and values are entered using methods such as 'driver.get_title', 'find_element_by_xpath', and 'select_by_visible_text'.", 'The script includes steps for verifying the visibility and waiting for elements, handling exceptions, and executing the entire flow of the project.']}, {'end': 31098.243, 'start': 30782.023, 'title': 'Automating website with selenium testing tool', 'summary': 'Details the process of automating a website with selenium testing tool, providing insights into logging into the edureka portal, navigating through the user profile, and logging out, as well as introducing the next project involving testing the flight booking website, new tours, using automation testing with selenium.', 'duration': 316.22, 'highlights': ['The chapter details the process of automating a website with Selenium testing tool, providing insights into logging into the Edureka portal, navigating through the user profile, and logging out, as well as introducing the next project involving testing the flight booking website, New Tours, using automation testing with Selenium. This highlights the main focus and key points of the chapter, including the use of Selenium testing tool for automating website processes and the introduction of the next project involving automation testing with Selenium for flight booking website.', 'The process involves setting browser factory, logging into the New Tours website, entering flight booking details, and checking for confirmation of the booked ticket, along with capturing a screenshot for verification. This highlight provides specific steps involved in the automation process, including setting browser factory, logging in, entering flight details, and capturing screenshots for verification.', "The chapter explains the configuration of three packages - framework, test, and UI - for the flight booking application, detailing the components of the framework package, such as browser factory for setting browser specifications and drivers for Chrome, Firefox, and Internet Explorer. This highlight provides insights into the configuration of packages for the flight booking application, specifically focusing on the framework package's components and the use of browser factory for setting browser specifications and drivers for different browsers."]}], 'duration': 1115.318, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ29982925.jpg', 'highlights': ['The chapter details the process of automating a website with Selenium testing tool, providing insights into logging into the Edureka portal, navigating through the user profile, and logging out, as well as introducing the next project involving testing the flight booking website, New Tours, using automation testing with Selenium.', 'The script successfully navigates through the Edureka website, enters login credentials, updates personal details and career interests, and then logs out, with all tests passing and no failures or skips.', 'The process involves setting browser factory, logging into the New Tours website, entering flight booking details, and checking for confirmation of the booked ticket, along with capturing a screenshot for verification.', 'The process involves navigating through the website, entering personal details, career interests, and user preferences, with a focus on software testing, employment type, and relocation preferences.', 'Navigating to Edureka website and locating the login button using link text locator The chapter demonstrates navigating to the Edureka website and locating the login button using the link text locator to automate interactions.', 'The chapter discusses the use of Gecko driver for automating website interactions in Mozilla Firefox browser.', 'The transcript provides insights into using locators such as XPath and ID to locate elements on a web page and perform actions such as clicking and entering text.', 'The chapter explains the configuration of three packages - framework, test, and UI - for the flight booking application, detailing the components of the framework package, such as browser factory for setting browser specifications and drivers for Chrome, Firefox, and Internet Explorer.']}, {'end': 32043.784, 'segs': [{'end': 31459.37, 'src': 'embed', 'start': 31434.407, 'weight': 3, 'content': [{'end': 31440.89, 'text': "So inside the driver dot get I'm navigating through the website, which I want to and inside the flight finder.", 'start': 31434.407, 'duration': 6.483}, {'end': 31446.156, 'text': "I'm specifying the details accordingly that we have specified over there at.", 'start': 31441.07, 'duration': 5.086}, {'end': 31455.045, 'text': 'this ID is one Zurich, July 12 from Frankfurt, and on September 15, that is I.', 'start': 31446.156, 'duration': 8.889}, {'end': 31459.37, 'text': 'he won a business class and the Airlines is unified Airlines.', 'start': 31455.045, 'duration': 4.325}], 'summary': 'Navigating to flight finder, selecting zurich-frankfurt, july 12-september 15, business class, with unified airlines.', 'duration': 24.963, 'max_score': 31434.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ31434407.jpg'}, {'end': 31748.296, 'src': 'embed', 'start': 31717.29, 'weight': 4, 'content': [{'end': 31718.691, 'text': 'So this is a second test case.', 'start': 31717.29, 'duration': 1.401}, {'end': 31723.555, 'text': 'So it is selling from departing from London on January 20 and arriving in New York.', 'start': 31718.892, 'duration': 4.663}, {'end': 31731.6, 'text': 'and the returning date will be December 10 and again the service class will be business class and the airline will be unified Airlines and I will hit the continue button.', 'start': 31724.17, 'duration': 7.43}, {'end': 31733.862, 'text': 'and again they want a blue skies airline and everything.', 'start': 31731.6, 'duration': 2.262}, {'end': 31735.945, 'text': 'So I just checked about it.', 'start': 31734.263, 'duration': 1.682}, {'end': 31744.834, 'text': 'So you can see here first executed at before class and at before method and in Chrome that is in Google Chrome.', 'start': 31736.486, 'duration': 8.348}, {'end': 31748.296, 'text': "So it shows that it's working fine and in the return ticket.", 'start': 31745.274, 'duration': 3.022}], 'summary': 'Test case for selling a flight from london to new york on january 20 with returning on december 10, in business class with unified airlines, and ensuring functionality in google chrome.', 'duration': 31.006, 'max_score': 31717.29, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ31717290.jpg'}, {'end': 31826.551, 'src': 'embed', 'start': 31760.324, 'weight': 0, 'content': [{'end': 31763.466, 'text': 'So all these methods work perfectly fine.', 'start': 31760.324, 'duration': 3.142}, {'end': 31768.71, 'text': 'Now we have to find where our screenshot is being saved of the flight booking confirmation.', 'start': 31763.987, 'duration': 4.723}, {'end': 31770.451, 'text': "Okay, let's see.", 'start': 31769.27, 'duration': 1.181}, {'end': 31775.142, 'text': 'So you can see the details from Zurich to Frankfurt.', 'start': 31772.159, 'duration': 2.983}, {'end': 31776.884, 'text': 'So this is the screenshot.', 'start': 31775.683, 'duration': 1.201}, {'end': 31780.267, 'text': 'You can just print it from here if you want to carry this,', 'start': 31776.924, 'duration': 3.343}, {'end': 31788.335, 'text': 'and the returning will be from Frankfurt to Zurich on 15 September and the passenger details will be Anirudh is correct.', 'start': 31780.267, 'duration': 8.068}, {'end': 31792.973, 'text': 'So this is how you can see the screenshot from where it got captured,', 'start': 31789.111, 'duration': 3.862}, {'end': 31798.155, 'text': 'and this is all about how to automate a flight booking application with the help of selenium.', 'start': 31792.973, 'duration': 5.182}, {'end': 31805.898, 'text': 'So everything was working perfectly fine and you can see all the details entered as according to the flow,', 'start': 31798.695, 'duration': 7.203}, {'end': 31808.84, 'text': 'and it executed everything as according to the flow.', 'start': 31805.898, 'duration': 2.942}, {'end': 31816.583, 'text': "So yes, that's how it works and this is all about a flight booking application and how do we automate it with the help of selenium.", 'start': 31809.3, 'duration': 7.283}, {'end': 31820.506, 'text': 'So I hope you found this project interesting next.', 'start': 31817.123, 'duration': 3.383}, {'end': 31826.551, 'text': 'So these are some of the case studies where many Industries are using to resolve and tackle their challenges.', 'start': 31821.347, 'duration': 5.204}], 'summary': 'Automated flight booking application using selenium executed flawlessly.', 'duration': 66.227, 'max_score': 31760.324, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ31760324.jpg'}], 'start': 31098.763, 'title': 'Automating flight booking process with selenium test automation workflow and case studies', 'summary': 'Covers the automation process of flight booking using selenium, including x path element location and input, and discusses a test automation workflow with selenium webdriver and testng, along with case studies on regression testing and automation framework applications.', 'chapters': [{'end': 31325.566, 'start': 31098.763, 'title': 'Automating flight booking process', 'summary': 'Covers the automation process of logging in, finding flights, selecting flights, and booking flights, utilizing x path for element location and sending keys for input, with multiple options like round trip, one-way, and different airline selections.', 'duration': 226.803, 'highlights': ['Utilizing X path for finding round trip and one-way trip details, and locating airline and flight options X path used for locating elements', 'Handling exceptions for airline selection and input details for flight booking Exception handling implemented', "Sending input details using the 'send_keys' method Input values sent using a specific method", 'Automating the process of logging in, finding flights, selecting flights, and booking flights Complete automation of flight booking process', 'Declaration of web elements for various input details like first name, last name, meal, credit card type, card number, and purchase Web elements declared for input details']}, {'end': 31716.37, 'start': 31326.066, 'title': 'Selenium test automation workflow', 'summary': 'Explains a selenium test automation workflow, including the process of booking a flight, validating credentials, and capturing screenshots using selenium webdriver and testng, with a detailed breakdown of the steps and annotations involved.', 'duration': 390.304, 'highlights': ['The workflow includes booking a flight, validating credentials, and capturing screenshots using Selenium WebDriver and TestNG. The chapter covers the process of booking a flight, validating credentials, and capturing screenshots using Selenium WebDriver and TestNG.', 'Annotations such as @BeforeClass and @AfterMethod are used to check the proper execution of workflow steps. Annotations like @BeforeClass and @AfterMethod are utilized to ensure proper execution of workflow steps.', 'The test case class involves entering details for flight selection and booking, including specifying flight preferences and passenger details. The test case class includes entering details for flight selection and booking, such as specifying flight preferences and passenger details.', 'The process involves capturing a screenshot for the flight confirmation and logging out after completing the test case. The process includes capturing a screenshot for the flight confirmation and logging out after completing the test case.', 'The program utilizes TestNG for execution, specifying the class name and methods to include in the test suite. The program utilizes TestNG for execution, specifying the class name and methods to include in the test suite.']}, {'end': 32043.784, 'start': 31717.29, 'title': 'Automation testing case studies', 'summary': 'Discusses the automation of a flight booking application using selenium, highlighting its successful execution and then delves into two case studies, one focusing on the use of selenium for regression testing in an enterprise management system and the other on an automation framework for physical fitness data.', 'duration': 326.494, 'highlights': ['The chapter discusses the successful automation of a flight booking application with Selenium, ensuring that all details were entered and executed as per the flow. The automation of the flight booking application using Selenium was successful, with all details entered and executed as per the flow.', "The case study on the Enterprise Management System illustrates the challenges faced due to the complexity of the application and how the organization opted for Selenium for regression testing, developing an easy-to-run hybrid framework for non-technical users. The Enterprise Management System case study highlights the challenges faced due to the application's complexity and the selection of Selenium for regression testing, along with the development of an easy-to-run hybrid framework for non-technical users.", 'Another case study focuses on an automation framework for physical fitness data, showcasing the utilization of software integrated with workout machines to provide users with recommended training exercises, weekly workout challenges, and member goals. The case study on the automation framework for physical fitness data emphasizes the utilization of software integrated with workout machines to provide users with recommended training exercises, weekly workout challenges, and member goals.']}], 'duration': 945.021, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ31098763.jpg', 'highlights': ['Complete automation of flight booking process', 'Utilizing X path for finding round trip and one-way trip details, and locating airline and flight options X path used for locating elements', 'The chapter covers the process of booking a flight, validating credentials, and capturing screenshots using Selenium WebDriver and TestNG', 'The automation of the flight booking application using Selenium was successful, with all details entered and executed as per the flow', "The Enterprise Management System case study highlights the challenges faced due to the application's complexity and the selection of Selenium for regression testing, along with the development of an easy-to-run hybrid framework for non-technical users"]}, {'end': 33028.477, 'segs': [{'end': 32173.792, 'src': 'embed', 'start': 32124.642, 'weight': 2, 'content': [{'end': 32138.648, 'text': 'and the page object classes provided an interface for the testers to interact with each page and test scripts was then created by calling the methods from the page object classes that perform specific transactions,', 'start': 32124.642, 'duration': 14.006}, {'end': 32144.411, 'text': 'such as login as register user, create a new user, create a workout Etc,', 'start': 32138.648, 'duration': 5.763}, {'end': 32149.453, 'text': 'and all work was committed to a subversion repository for version controlling.', 'start': 32144.411, 'duration': 5.042}, {'end': 32150.995, 'text': 'Not just that.', 'start': 32149.913, 'duration': 1.082}, {'end': 32154.84, 'text': 'a selenium web drive will lacks any built-in logging mechanism.', 'start': 32150.995, 'duration': 3.845}, {'end': 32162.25, 'text': 'a custom solution was used to record the logs into an XML file using the open-source Java API, J Excel,', 'start': 32154.84, 'duration': 7.41}, {'end': 32165.574, 'text': 'and each commands and verifications performed were logged.', 'start': 32162.25, 'duration': 3.324}, {'end': 32173.792, 'text': 'and this provided a detailed view of where the test script has failed and the steps performed that caused the failure.', 'start': 32166.247, 'duration': 7.545}], 'summary': 'Test scripts created using page object classes, logged using custom solution, providing detailed view of failures.', 'duration': 49.15, 'max_score': 32124.642, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32124642.jpg'}, {'end': 32364.939, 'src': 'embed', 'start': 32335.896, 'weight': 0, 'content': [{'end': 32340.44, 'text': "Now let's take a look at the similarities between selenium and RPA.", 'start': 32335.896, 'duration': 4.544}, {'end': 32345.884, 'text': 'selenium and RPA both are automation tools used to automate a task.', 'start': 32340.44, 'duration': 5.444}, {'end': 32350.548, 'text': 'selenium automates web applications and RPA automates business processes.', 'start': 32345.884, 'duration': 4.664}, {'end': 32354.17, 'text': 'Both these tools are rule-based by rule-based.', 'start': 32351.288, 'duration': 2.882}, {'end': 32358.113, 'text': 'I mean they follow a set of procedures to automate any given task.', 'start': 32354.29, 'duration': 3.823}, {'end': 32364.939, 'text': "Now, let's look at the parameters that will be taken into consideration for comparing the two automation Giants.", 'start': 32358.694, 'duration': 6.245}], 'summary': 'Selenium and rpa are both rule-based automation tools, with selenium automating web applications and rpa automating business processes.', 'duration': 29.043, 'max_score': 32335.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32335896.jpg'}, {'end': 32633.15, 'src': 'embed', 'start': 32606.498, 'weight': 3, 'content': [{'end': 32614.481, 'text': "What if I try to use RPA as a testing tool? Any answers? Okay, so I'll answer this for you guys.", 'start': 32606.498, 'duration': 7.983}, {'end': 32623.157, 'text': 'I would say both selenium and RPA help in delivering automation solutions talking about using it as a testing tool.', 'start': 32615.427, 'duration': 7.73}, {'end': 32627.843, 'text': 'It can be used to test web applications, but it is not recommended.', 'start': 32623.437, 'duration': 4.406}, {'end': 32633.15, 'text': 'Let me talk about the practical aspect that resists RPA from being a test machine.', 'start': 32628.263, 'duration': 4.887}], 'summary': 'Rpa is not recommended for testing web applications due to practical limitations.', 'duration': 26.652, 'max_score': 32606.498, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32606498.jpg'}, {'end': 32808.917, 'src': 'embed', 'start': 32783.192, 'weight': 5, 'content': [{'end': 32790.494, 'text': "So before we get to the technical definition of selenium, let's take a look at the history of selenium and see how selenium came into existence.", 'start': 32783.192, 'duration': 7.302}, {'end': 32797.953, 'text': 'The name selenium comes from a joke made by Huggins while writing an email mocking the competitor called Mercury,', 'start': 32791.152, 'duration': 6.801}, {'end': 32802.975, 'text': 'saying that you can cure any mercury poisoning by taking selenium supplements.', 'start': 32797.953, 'duration': 5.022}, {'end': 32805.275, 'text': 'selenium in general is a chemical element.', 'start': 32802.975, 'duration': 2.3}, {'end': 32808.917, 'text': "So that's when he introduced the word selenium in technical terms.", 'start': 32805.676, 'duration': 3.241}], 'summary': 'Selenium, a chemical element, was named in a competitive joke by huggins while mocking a competitor, mercury, and was introduced into technical terms.', 'duration': 25.725, 'max_score': 32783.192, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32783192.jpg'}, {'end': 32999.529, 'src': 'embed', 'start': 32965.292, 'weight': 6, 'content': [{'end': 32968.413, 'text': 'So these are all the advantages of selenium over QTP.', 'start': 32965.292, 'duration': 3.121}, {'end': 32972.317, 'text': "Now, let's take a look at the advantages of QTP over selenium.", 'start': 32968.775, 'duration': 3.542}, {'end': 32976.723, 'text': 'QTP can test web mobile and desktop application.', 'start': 32972.958, 'duration': 3.765}, {'end': 32979.527, 'text': 'Whereas selenium tests only web applications.', 'start': 32976.822, 'duration': 2.705}, {'end': 32986.997, 'text': 'It has its own inbuilt object repository where all the information regarding the test cases are stored.', 'start': 32980.127, 'duration': 6.87}, {'end': 32991.182, 'text': 'the rate of automation in QTP is fast compared to that of selenium.', 'start': 32986.997, 'duration': 4.185}, {'end': 32999.529, 'text': 'QTP can handle controls within the browser like accessing the favorite bar access bar back and forward buttons Etc.', 'start': 32991.747, 'duration': 7.782}], 'summary': 'Qtp advantages: tests web, mobile, desktop apps, fast automation rate, handles browser controls.', 'duration': 34.237, 'max_score': 32965.292, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32965292.jpg'}], 'start': 32043.784, 'title': 'Selenium and test automation', 'summary': 'Covers the implementation of an open-source functional test automation framework using selenium webdriver and page object design pattern for regression testing, with 100% open source components and a custom logging mechanism. it also includes a comparative analysis between selenium and rpa, highlighting their differences in terms of automation type, cost, programming knowledge, life cycle, platform dependency, components, level of automation, and use case. additionally, it provides a detailed history of selenium and its benefits over qtp, emphasizing differences in cost, programming language support, cross-browser functionality, automation rate, and object handling.', 'chapters': [{'end': 32231.309, 'start': 32043.784, 'title': 'Test automation framework for regression testing', 'summary': "Discusses the implementation of an open-source functional test automation framework using selenium webdriver and page object design pattern to perform regression testing, with 100% open source components and custom logging mechanism, providing detailed view of test script failures and successful training for client's employees.", 'duration': 187.525, 'highlights': ["The implemented automation framework is 100% open source and utilized Selenium WebDriver and page object design pattern for minimal script maintenance and continuous script creation, with training provided to client's employees.", 'A custom logging solution using J Excel was used to provide detailed view of test script failures, recording all commands and verifications performed, offering support for any issues encountered during scripting.', "The challenges faced include the need for the framework to support Google Chrome web browser, minimize script maintenance, and enable script creation even after the contract ends, with the strategy involving the use of Selenium WebDriver, page object design pattern, and training for the client's employees.", 'The use of the expected conditions class from the Selenium package was employed to handle issues related to Ajax usage, ensuring that Selenium WebDriver test scripts waited for certain conditions to be met prior to executing commands, addressing the problem of faster execution of commands than UI updates.']}, {'end': 32782.732, 'start': 32232.35, 'title': 'Selenium vs rpa: a comparative analysis', 'summary': 'Elaborates on the benefits of using selenium for automated testing, including cost savings and enhanced capabilities through the utilization of open source projects, as well as provides a comprehensive comparison between selenium and rpa, highlighting their differences in terms of automation type, cost, programming knowledge, life cycle, platform dependency, components, level of automation, and use case.', 'duration': 550.382, 'highlights': ["Selenium's cost-saving benefits and enhanced capabilities through open source projects The chapter emphasizes that using Selenium led to cost savings as there were no costs in obtaining the required components to set up the framework, and additional savings were made by implementing the Selenium grid.", 'Comparison of automation type, cost, and programming knowledge between Selenium and RPA The chapter elaborates on the differences between Selenium and RPA in terms of automation type (programmable automation vs. flexible automation), cost (Selenium being open source, while RPA tools such as UiPath and Automation Anywhere are licensed), and programming knowledge required (Java for Selenium, no coding knowledge for RPA).', "Comparison of life cycle, platform dependency, and components used for automation between Selenium and RPA The chapter provides a detailed comparison of the life cycle (Selenium's complex life cycle compared to RPA's simpler process), platform dependency (Selenium limited to web applications, while RPA can run on any platform), and components used for automation (Selenium uses web drivers, while RPA uses robots)."]}, {'end': 33028.477, 'start': 32783.192, 'title': 'History and benefits of selenium', 'summary': 'Provides a detailed history of selenium, from its origin as an internal tool in 2004 to its development into selenium rc and webdriver in 2009, and its purpose as an automation tool for testing web applications. it also highlights the advantages of selenium over qtp and the benefits of qtp over selenium, emphasizing their differences in terms of cost, programming language support, cross-browser functionality, automation rate, and object handling.', 'duration': 245.285, 'highlights': ["Selenium's history from its origin as an internal tool in 2004 to its development into Selenium RC and WebDriver in 2009. Selenium was initially developed as an internal tool by Jason Huggins in 2004, later joined by Paul Hammond, and eventually transformed into Selenium RC by Dan Fabulich and Nelson Sproul in 2005. In 2009, it merged with Selenium WebDriver, known as Selenium 2.0.", "Selenium's purpose as an automation tool for testing web applications, supporting cross-browser functionality and multiple programming languages. Selenium is an automation tool used to test web applications, supporting cross-browser functionality across Chrome, Safari, Opera, Firefox, and Explorer, and allowing test scripts to be written in various programming languages such as Java, Python, Ruby, and C#.", 'Advantages of Selenium over QTP, including cost, programming language support, and cross-browser functionality. Selenium is open source, portable, supports multiple programming languages, and functions across different browsers, contrasting with the expensive and limited language support of QTP, which only runs on Windows and lacks cross-browser support.', 'Benefits of QTP over Selenium, such as testing web, mobile, and desktop applications, fast automation rate, and object handling capabilities. QTP can test web, mobile, and desktop applications, has a fast automation rate, and provides functional user support and automatic test report generation, unlike Selenium, which only tests web applications and lacks these features.']}], 'duration': 984.693, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ32043784.jpg', 'highlights': ['Implemented automation framework is 100% open source, utilizing Selenium WebDriver and page object design pattern for minimal script maintenance and continuous script creation.', 'Custom logging solution using J Excel provides detailed view of test script failures, recording all commands and verifications performed, offering support for any issues encountered during scripting.', "Challenges include the need for the framework to support Google Chrome web browser, minimize script maintenance, and enable script creation even after the contract ends, with the strategy involving the use of Selenium WebDriver, page object design pattern, and training for the client's employees.", 'Use of the expected conditions class from the Selenium package was employed to handle issues related to Ajax usage, ensuring that Selenium WebDriver test scripts waited for certain conditions to be met prior to executing commands, addressing the problem of faster execution of commands than UI updates.', "Selenium's cost-saving benefits and enhanced capabilities through open source projects, leading to cost savings as there were no costs in obtaining the required components to set up the framework, and additional savings were made by implementing the Selenium grid.", 'Comparison of automation type, cost, and programming knowledge between Selenium and RPA, elaborating on the differences in terms of automation type, cost, and programming knowledge required.', 'Detailed comparison of the life cycle, platform dependency, and components used for automation between Selenium and RPA, providing insights into the differences in life cycle, platform dependency, and components used for automation.', "Selenium's history from its origin as an internal tool in 2004 to its development into Selenium RC and WebDriver in 2009, highlighting its purpose as an automation tool for testing web applications, supporting cross-browser functionality and multiple programming languages.", 'Advantages of Selenium over QTP, including cost, programming language support, and cross-browser functionality, contrasting with the expensive and limited language support of QTP, which only runs on Windows and lacks cross-browser support.', 'Benefits of QTP over Selenium, such as testing web, mobile, and desktop applications, fast automation rate, and object handling capabilities, providing functional user support and automatic test report generation, unlike Selenium, which only tests web applications and lacks these features.']}, {'end': 35253.276, 'segs': [{'end': 33992.775, 'src': 'embed', 'start': 33967.377, 'weight': 3, 'content': [{'end': 33972.599, 'text': 'automation testing is mainly focused on reducing time and human errors, right?', 'start': 33967.377, 'duration': 5.222}, {'end': 33981.505, 'text': "So if the work is done manually, you don't have to go for the automation testing part, check for it and check for critical bugs as well,", 'start': 33973.317, 'duration': 8.188}, {'end': 33988.571, 'text': 'which are unfixed, and also expected delivery date by which the testing phase is needed to be completed.', 'start': 33981.505, 'duration': 7.066}, {'end': 33992.775, 'text': 'You should have a proper skill to troubleshoot the automation tools.', 'start': 33989.432, 'duration': 3.343}], 'summary': 'Automation testing reduces time, human errors, and critical bugs. proper skills needed for troubleshooting automation tools.', 'duration': 25.398, 'max_score': 33967.377, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ33967377.jpg'}, {'end': 34071.686, 'src': 'embed', 'start': 34037.771, 'weight': 2, 'content': [{'end': 34042.713, 'text': 'So what are the roles and responsibilities of a selenium tester or an automation tester??', 'start': 34037.771, 'duration': 4.942}, {'end': 34051.695, 'text': 'These testers are supposed to design and write the test automation scripts and also help in investigating the problems in the software.', 'start': 34043.173, 'duration': 8.522}, {'end': 34056.877, 'text': 'They also help in defining the process strategies for a better testing result.', 'start': 34052.216, 'duration': 4.661}, {'end': 34062.439, 'text': 'They must be able to process implement and monitor the testing that takes place.', 'start': 34057.497, 'duration': 4.942}, {'end': 34071.686, 'text': 'These testers should ensure that they deliver timely results and generate the code that help in easy detection of bugs and resolve them,', 'start': 34063.064, 'duration': 8.622}], 'summary': 'Selenium testers design & write automation scripts, investigate problems, define process strategies, and ensure timely results.', 'duration': 33.915, 'max_score': 34037.771, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ34037771.jpg'}, {'end': 34118.942, 'src': 'embed', 'start': 34086.329, 'weight': 1, 'content': [{'end': 34088.913, 'text': "So let's take a look at the job description for this role.", 'start': 34086.329, 'duration': 2.584}, {'end': 34094.199, 'text': 'This will give you an overview of the tasks and the duties of an automation tester.', 'start': 34089.333, 'duration': 4.866}, {'end': 34101.609, 'text': 'So the automation tester should develop HLD that is high-level design and also define the software architecture.', 'start': 34094.72, 'duration': 6.889}, {'end': 34105.772, 'text': 'He or she must ensure that the customer satisfaction is met.', 'start': 34102.129, 'duration': 3.643}, {'end': 34112.357, 'text': 'should be involved in test case review, monitoring and tracking of tasks, status reporting and so on.', 'start': 34105.772, 'duration': 6.585}, {'end': 34118.942, 'text': 'should demonstrate successful completion of analysis, technical, design and programming assignments.', 'start': 34112.357, 'duration': 6.585}], 'summary': 'Automation tester develops hld, ensures customer satisfaction, and handles test case review and tracking.', 'duration': 32.613, 'max_score': 34086.329, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ34086329.jpg'}, {'end': 34628.669, 'src': 'embed', 'start': 34604.341, 'weight': 5, 'content': [{'end': 34611.386, 'text': 'So I think you guys have got a clear idea on how automation testing is being in the front line since a very long time.', 'start': 34604.341, 'duration': 7.045}, {'end': 34615.309, 'text': 'So this is about the salary times related to an automation tester.', 'start': 34611.867, 'duration': 3.442}, {'end': 34622.835, 'text': "Now, let's move on to the final part of the session where we are going to write a sample resume to acquire a job as an automation tester.", 'start': 34615.89, 'duration': 6.945}, {'end': 34628.669, 'text': "So I've written a sample resume so that you can analyze how to build a strong resume of your own.", 'start': 34623.422, 'duration': 5.247}], 'summary': 'Automation testing has been at the forefront for a long time, with a focus on automation tester salaries and creating a sample resume for the role.', 'duration': 24.328, 'max_score': 34604.341, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ34604341.jpg'}, {'end': 35163.994, 'src': 'embed', 'start': 35135.788, 'weight': 0, 'content': [{'end': 35138.669, 'text': 'There are three types of selenese available in selenium.', 'start': 35135.788, 'duration': 2.881}, {'end': 35143.11, 'text': 'They are actions, assertions and accessors.', 'start': 35139.009, 'duration': 4.101}, {'end': 35148.472, 'text': 'actions are used to perform operations and it interacts with the target element.', 'start': 35143.11, 'duration': 5.362}, {'end': 35150.793, 'text': 'assertions are used as a checkpoint.', 'start': 35148.472, 'duration': 2.321}, {'end': 35155.671, 'text': 'Accessories are used for storing the values and a particular variable.', 'start': 35151.61, 'duration': 4.061}, {'end': 35159.132, 'text': 'Now, how to build an object repository in Selenium.', 'start': 35156.271, 'duration': 2.861}, {'end': 35163.994, 'text': 'An object repository is a common storage collection for all objects.', 'start': 35159.612, 'duration': 4.382}], 'summary': 'Three types of selenese: actions, assertions, and accessors. object repository is a common storage for all objects.', 'duration': 28.206, 'max_score': 35135.788, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35135788.jpg'}], 'start': 33028.477, 'title': 'Comparison and role of selenium', 'summary': 'Compares selenium and qtp based on license, flexibility, programming language support, id integration, and repository functionality. it also discusses the role of an automation test engineer, market trends, salary insights, essential skills, best practices, job trends, and components of selenium.', 'chapters': [{'end': 33186.466, 'start': 33028.477, 'title': 'Comparison of selenium and qtp', 'summary': 'Compares selenium and qtp based on their license (selenium is open source, qtp is licensed), flexibility (selenium can run on various platforms, qtp is limited to windows), programming language support (selenium supports multiple languages, qtp uses vb scripts), id integration (selenium can be integrated with multiple ids, qtp only works on its own id), and repository functionality (selenium does not have an inbuilt repository, qtp has an inbuilt object repository).', 'duration': 157.989, 'highlights': ['Selenium is open source and free, while QTP is licensed and requires payment.', 'Selenium is highly flexible, supporting various platforms like Chrome, Firefox, and Opera, while QTP is not very flexible, mainly supporting Windows.', 'Selenium supports multiple programming languages (Java, Python, C#, Ruby), while QTP uses VB scripts and lacks support for other languages.', 'Selenium test scripts can be integrated to run across various IDs like Eclipse, net beans, whereas QTP test scripts only work on the QTP developed ID.', 'Selenium does not have an inbuilt repository, whereas QTP has an inbuilt object repository for executing test scripts.', 'Selenium supports all additional plugins, while QTP supports different environments like SAP and Oracle but does not support additional plugins.']}, {'end': 33950.232, 'start': 33192.688, 'title': 'Role of automation test engineer', 'summary': 'Discusses the role of an automation test engineer, including responsibilities, market trends, and salary insights. it highlights the growth of the automation testing market, the importance of automation testing in reducing defects, and the average annual salary of a test automation engineer, which is $90,000 in the u.s. it also emphasizes the skills required to become a successful automation tester, such as knowledge of programming languages, the ability to design frameworks, create test scripts, and use automation testing tools like selenium and uft. the chapter also underlines the importance of understanding business requirements for effective testing.', 'duration': 757.544, 'highlights': ['The global automation testing market size is expected to grow up to 28.8 billion dollars by the end of 2024, at a compound annual growth rate of 18% during the forecast period. The forecasted growth of the automation testing market indicates significant opportunities and demand for automation testers, with the market expected to more than double in size by 2024.', 'Test automation engineers can save businesses from a world full of defects, with the goal of ultimately achieving no defects. Highlighting the crucial role of automation testers in reducing defects and improving the quality of software products, which is a key value proposition for businesses.', 'The average annual salary of a test automation engineer is around $90,000 in the U.S., according to the job portal Indeed. Providing specific quantifiable data about the average annual salary of a test automation engineer, which can be a key consideration for individuals pursuing a career in automation testing.', 'The knowledge of any programming language is essential for becoming a good automation tester, with Java and Python being prominent options. Emphasizing the importance of programming language skills as a fundamental requirement for individuals aspiring to become successful automation testers.', 'Understanding the business requirement is crucial for automation testers, as they must know the application inside out, from both front end as well as a service layer, before the testing phase begins. Highlighting the importance of understanding business requirements to ensure comprehensive and effective testing, indicating the depth of knowledge and expertise required for automation testers.']}, {'end': 34442.135, 'start': 33950.232, 'title': 'Automation testing best practices', 'summary': 'Highlights the best practices for automation testing, emphasizing the importance of manual testing before automation, the roles and responsibilities of an automation tester, the essential skills required, and tips for building an effective resume.', 'duration': 491.903, 'highlights': ['Automation testing should follow manual testing, and the focus is on reducing time and human errors Emphasizes the importance of manual testing before automation, highlighting the focus of automation testing on reducing time and human errors.', 'Roles and responsibilities of an automation tester include designing and writing test automation scripts, investigating software problems, and defining process strategies Outlines the key responsibilities of an automation tester, including designing and writing test automation scripts, investigating software problems, and defining process strategies.', 'Essential skills required for an automation tester, including knowledge of test architecture, computer languages, software development, and communication skills Details the essential skills required for an automation tester, such as knowledge of test architecture, computer languages, software development, and communication skills.', 'Tips for building an effective resume, including the importance of consistency, conciseness, and clear formatting, and the relevance of hobbies and awards Provides tips for building an effective resume, emphasizing the importance of consistency, conciseness, clear formatting, and the relevance of hobbies and awards.']}, {'end': 34724.944, 'start': 34442.845, 'title': 'Selenium job trends and salary insights', 'summary': 'Discusses the increasing demand and high pay scale for software testing jobs, with an exponential growth in vacancies and a median salary of 50,000 euros, and provides insights into the importance of mastering selenium for better salary offers.', 'duration': 282.099, 'highlights': ['Exponential growth in vacancies for testing jobs with a median salary of 50,000 euros, indicating a high demand and lucrative pay scale for software testers. Exponential growth in vacancies for testing jobs with a median salary of 50,000 euros.', 'Massive 80% increase in contract job vacancies, highlighting the flexibility in job choices for software testers. Massive 80% increase in contract job vacancies for software testers.', 'Selenium is globally rated as the top priority in the test automation field, with a 29% to 36% increase in the number of people choosing testing as their career option. Selenium is globally rated as the top priority in the test automation field, with a 29% to 36% increase in the number of people choosing testing as their career option.', 'National average salary for a software tester in India is about 3 lakh 86,000 914, indicating the potential for higher earnings in this field. National average salary for a software tester in India is about 3 lakh 86,000 914.', 'Providing guidance on writing a compelling resume for a software testing job, emphasizing the importance of proper formatting, introduction, education, experience, skills, and achievements. Providing guidance on writing a compelling resume for a software testing job.']}, {'end': 35253.276, 'start': 34724.944, 'title': 'Selenium: components, frameworks, and limitations', 'summary': 'Discusses the components of selenium, including selenium webdriver, selenium grid, and selenium ide, as well as the challenges and limitations of selenium webdriver. it also covers the different types of selenium frameworks and the capabilities of selenium webdriver, highlighting its support for handling multiple frames, pop-ups, multiple browser windows, and alerts.', 'duration': 528.332, 'highlights': ['Selenium WebDriver is a different tool altogether, which has various advantages over RC. Selenium WebDriver directly communicates with the browser and uses its native compatibility to automate tasks, providing improved functionality for handling multiple frames, pop-ups, multiple browser windows, and alerts.', 'The challenges and limitations of Selenium WebDriver are important to consider, such as its difficulty in testing image-based applications and its dependency on external support for report generation. Selenium WebDriver presents challenges in testing image-based applications, requires external support for report generation, and cannot perform tests on web services like SOAP or REST.', 'The different types of frameworks available in Selenium are data-driven, keyword-driven, and hybrid, each with its unique approach to code maintenance and test case execution. Selenium offers three types of frameworks: data-driven, keyword-driven, and hybrid, each designed to simplify code maintenance and enhance test case execution.', "Python's advantages over Java in Selenium, including faster program execution and simpler syntax, make it a viable choice for writing test scripts. Python's faster execution, simpler syntax, and dynamic typing make it a favorable option over Java for writing test scripts in Selenium.", 'Selenese consists of actions, assertions, and accessors, providing a set of commands for running test cases, performing operations, and validating checkpoints. Selenese offers actions for performing operations, assertions for checkpoints, and accessors for storing values, providing a comprehensive set of commands for running test cases.']}], 'duration': 2224.799, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ33028477.jpg', 'highlights': ['Selenium is open source and free, while QTP is licensed and requires payment.', 'The global automation testing market size is expected to grow up to 28.8 billion dollars by the end of 2024, at a compound annual growth rate of 18% during the forecast period.', 'The average annual salary of a test automation engineer is around $90,000 in the U.S., according to the job portal Indeed.', 'Automation testing should follow manual testing, and the focus is on reducing time and human errors.', 'Exponential growth in vacancies for testing jobs with a median salary of 50,000 euros, indicating a high demand and lucrative pay scale for software testers.', 'Selenium WebDriver is a different tool altogether, which has various advantages over RC. Selenium WebDriver directly communicates with the browser and uses its native compatibility to automate tasks, providing improved functionality for handling multiple frames, pop-ups, multiple browser windows, and alerts.']}, {'end': 36819.325, 'segs': [{'end': 35287.886, 'src': 'embed', 'start': 35253.988, 'weight': 1, 'content': [{'end': 35258.349, 'text': 'Now, another important question would be why do you use selenium ID?', 'start': 35253.988, 'duration': 4.361}, {'end': 35261.03, 'text': 'What is the importance of selenium ID?', 'start': 35258.709, 'duration': 2.321}, {'end': 35268.331, 'text': 'selenium ID is the simplest and the easiest of all the tools within the selenium package or suite of tools.', 'start': 35261.03, 'duration': 7.301}, {'end': 35275.573, 'text': 'its record and playback feature makes it exceptionally easy to learn, with minimal acquaintances to any programming language.', 'start': 35268.331, 'duration': 7.242}, {'end': 35279.354, 'text': 'This selenium ID is an ideal tool for any user.', 'start': 35276.053, 'duration': 3.301}, {'end': 35287.886, 'text': 'What are locators in selenium locators are defined as an address that identifies a web element uniquely within the web page.', 'start': 35280.02, 'duration': 7.866}], 'summary': 'Selenium ide is the simplest and easiest tool in the selenium suite, ideal for any user, with record and playback feature.', 'duration': 33.898, 'max_score': 35253.988, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35253988.jpg'}, {'end': 35337.308, 'src': 'embed', 'start': 35305.839, 'weight': 2, 'content': [{'end': 35308.401, 'text': 'We have different types of locators in selenium.', 'start': 35305.839, 'duration': 2.562}, {'end': 35314.489, 'text': 'So there is a diverse range of web elements like the text box ID radio button Etc.', 'start': 35309.065, 'duration': 5.424}, {'end': 35319.053, 'text': 'So it requires an effective and accurate approach to identify these elements.', 'start': 35315.01, 'duration': 4.043}, {'end': 35330.062, 'text': 'We have ID locator name link text partial link text CSS selector and expat the most popular way to identify the web elements is to use the ID.', 'start': 35319.554, 'duration': 10.508}, {'end': 35337.308, 'text': 'It is the safest and the fastest locator options and should always be the first choice even when there are multiple options.', 'start': 35330.582, 'duration': 6.726}], 'summary': 'Selenium offers various locators; id is the safest and fastest option for identifying web elements.', 'duration': 31.469, 'max_score': 35305.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35305839.jpg'}, {'end': 35627.393, 'src': 'embed', 'start': 35598.704, 'weight': 3, 'content': [{'end': 35601.965, 'text': 'So he would ask what is form and what are its advantages?', 'start': 35598.704, 'duration': 3.261}, {'end': 35612.306, 'text': 'Palm is page object model, which is a design pattern in test automation in order to create an object repository for web UI based elements.', 'start': 35602.642, 'duration': 9.664}, {'end': 35620.009, 'text': 'The advantages of this page object model are it makes automation framework friendly more durable and comprehensive.', 'start': 35612.966, 'duration': 7.043}, {'end': 35623.651, 'text': 'It keeps the test and the element locators separately.', 'start': 35620.73, 'duration': 2.921}, {'end': 35627.393, 'text': 'The repository is independent of any automation test.', 'start': 35624.191, 'duration': 3.202}], 'summary': 'Page object model (pom) separates test and element locators, making automation framework-friendly and independent.', 'duration': 28.689, 'max_score': 35598.704, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35598704.jpg'}, {'end': 35956.416, 'src': 'embed', 'start': 35929.145, 'weight': 4, 'content': [{'end': 35934.126, 'text': 'Now, what about conditional? It specifies a condition along with the timeout value.', 'start': 35929.145, 'duration': 4.981}, {'end': 35939.328, 'text': 'So the tool waits in order to check for the condition and then it comes out of it if nothing happens.', 'start': 35934.546, 'duration': 4.782}, {'end': 35942.729, 'text': 'So this is how you achieve synchronization in that driver.', 'start': 35940.008, 'duration': 2.721}, {'end': 35947.371, 'text': "Now, let's move on to another important question how to take a screenshot in selenium.", 'start': 35943.249, 'duration': 4.122}, {'end': 35953.714, 'text': 'Selenium has an interface by the name takes screenshot which we can use in order to get a screenshot.', 'start': 35948.01, 'duration': 5.704}, {'end': 35956.416, 'text': 'Okay, so the syntax goes something like this.', 'start': 35954.114, 'duration': 2.302}], 'summary': 'Selenium achieves synchronization through conditional timeouts. it provides a method to take screenshots.', 'duration': 27.271, 'max_score': 35929.145, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35929145.jpg'}, {'end': 36187.225, 'src': 'embed', 'start': 36163.24, 'weight': 5, 'content': [{'end': 36171.042, 'text': 'TestNG is a testing framework based on J unit and N unit in order to simplify a broad range of testing needs,', 'start': 36163.24, 'duration': 7.802}, {'end': 36174.542, 'text': 'starting from unit testing to integration testing,', 'start': 36171.042, 'duration': 3.5}, {'end': 36181.984, 'text': 'and the functionalities which makes it an efficient testing framework are its support for annotation, support for data-driven testing,', 'start': 36174.542, 'duration': 7.442}, {'end': 36187.225, 'text': 'flexible test configuration and it has the ability to re-execute the failed test cases.', 'start': 36181.984, 'duration': 5.241}], 'summary': 'Testng is a testing framework with support for annotation, data-driven testing, and re-execution of failed test cases.', 'duration': 23.985, 'max_score': 36163.24, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ36163240.jpg'}, {'end': 36577.824, 'src': 'embed', 'start': 36555.126, 'weight': 0, 'content': [{'end': 36564.834, 'text': 'Selenium supports almost all popular browsers like Firefox Chrome Safari Opera and so on whereas QTP supports Internet Explorer Firefox and Chrome.', 'start': 36555.126, 'duration': 9.708}, {'end': 36568.477, 'text': 'It only supports Windows based operating system.', 'start': 36565.354, 'duration': 3.123}, {'end': 36573.941, 'text': 'talking about the distribution selenium is distributed as an open source and freely available tool,', 'start': 36568.477, 'duration': 5.464}, {'end': 36577.824, 'text': 'and QTP is distributed as a licensed tool and is commercialized.', 'start': 36573.941, 'duration': 3.883}], 'summary': 'Selenium supports more browsers, is open-source, while qtp is licensed and limited to windows.', 'duration': 22.698, 'max_score': 36555.126, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ36555126.jpg'}], 'start': 35253.988, 'title': 'Selenium test automation', 'summary': 'Covers selenium ide, different locators, automation techniques like javascript executor, page object model, synchronization, screenshot, window handling, and comparison between selenium and qtp based on browser compatibility, distribution, languages supported, and vendor support.', 'chapters': [{'end': 35549.782, 'start': 35253.988, 'title': 'Selenium id and locators', 'summary': 'Explains the importance of selenium ide and different types of locators in selenium, emphasizing the significance of id locator and providing methods to select the size of the browser window and work with excel files in selenium.', 'duration': 295.794, 'highlights': ['High Selenium IDE is the simplest tool within the Selenium package, making it exceptionally easy to learn, with minimal acquaintances to any programming language.', 'High Different types of locators in Selenium, emphasizing the significance of ID locator as the safest and fastest option for identifying web elements.', 'Medium Methods to select the size of the browser window, including maximizing, getting actual size, and resizing using commands like driver.manage().window.maximize and window.getSize().', 'Medium Introduction of JXL as Java Excel API and Apache POI as a popular API for working with Excel files in Selenium, offering functionalities to read, write, create, and modify Excel workbooks.']}, {'end': 35909.538, 'start': 35550.365, 'title': 'Selenium automation techniques', 'summary': 'Covers javascript executor for scrolling and handling failures, page object model and factory for creating object repository, actions class for mouse and keyboard events, alert interface for handling window pop-ups, and synchronization in webdriver.', 'duration': 359.173, 'highlights': ['Page Object Model (POM) POM is a design pattern for creating an object repository for web UI elements, making the automation framework durable and reusable.', "Handling Window Pop-ups Selenium doesn't handle window pop-ups, but the alert interface can be used with methods like dismiss, accept, get text, and send keys.", 'JavaScript Executor JavaScript executor in Selenium helps execute JavaScript, scroll down a page, and handle element click failures using methods like execute script and execute async script.', 'Actions Class for Mouse and Keyboard Events The actions class in Selenium allows for emulating complex mouse and keyboard events, including drag-and-drop, clicking, double-clicking, and more.', 'Robot Class for Native System Input Events The robot class in Selenium is used for generating native system input events, providing control over mouse and keyboard functions and handling OS pop-ups.']}, {'end': 36187.225, 'start': 35909.538, 'title': 'Synchronization, screenshot & window handling in selenium', 'summary': 'Covers synchronization mechanisms, taking screenshots, and handling multiple windows in selenium, as well as listeners and features of testng.', 'duration': 277.687, 'highlights': ['Synchronization mechanisms in Selenium Explains the conditional and non-conditional synchronization mechanisms in Selenium, detailing the use of timeout values and conditions for achieving synchronization.', "Taking screenshots in Selenium Describes the syntax and method 'getScreenshotAs' for capturing entire screenshots in Selenium, including copying and saving them using the FileUtils class.", "Handling multiple windows in Selenium Discusses the concept of window handles, methods like 'getWindowHandle' and 'getWindowHandles', and the 'switchTo' command for switching between windows in Selenium.", 'Listeners in Selenium WebDriver Defines listeners as entities that listen to specific events in Selenium scripts and customizing test engine reports, mentioning WebDriverListener and TestNGListeners as main types.', 'Features and functionalities of TestNG Lists the features of TestNG, such as support for annotations, data-driven testing, flexible test configuration, and the ability to re-execute failed test cases, making it an efficient testing framework.']}, {'end': 36539.345, 'start': 36187.965, 'title': 'Selenium q&a: commands, handling, and exceptions', 'summary': 'Covers essential concepts in selenium, including the differences between assert and verify commands, debugging tests in selenium ide, handling network latency, using regular expressions, database testing, session handling, exceptions, and customizing html reports using testng.', 'duration': 351.38, 'highlights': ['Difference between assert and verify commands in Selenium Assert command stops test execution if condition is false, while verify command continues test execution even if condition is false.', "Debugging tests in Selenium IDE To debug test cases in Selenium IDE, insert a breakpoint, run the test case, and click on the 'debug' and 'run' buttons to execute commands at the same time.", "Handling network latency in Selenium Using 'driver.manage().timeouts().pageLoadTimeout()' command helps in providing time for page load and handling network latency.", "Capturing server-side log in Selenium server Capturing the server-side log in Selenium server can be done using the command 'Java -jar .jar -log selenium.log' in the command prompt.", "Using regular expressions in Selenium Selenium uses regular expressions with the 'regX' prefix to describe search patterns and include expected values.", 'Database testing in Selenium Database testing in Selenium WebDriver requires the Java Database Connectivity (JDBC) API for executing SQL statements.', 'Importance of session handling in Selenium Session handling is crucial in Selenium to interact with the browser continuously and avoid conflicts when executing scripts on the same machine and browser type.', 'Types of exceptions in Selenium WebDriver Selenium WebDriver throws five major exceptions: WebDriverException, NoAlertPresentException, NoSuchWindowException, NoSuchElementException, and TimeoutException.', 'Customizing HTML reports using TestNG Customizing HTML reports using TestNG can be achieved using JUnit with Ant TestNG, XST reports from Ant Selenium and TestNG combinations, and customized reports using XSL jar files to convert XML content to HTML.', "Switching between frames in WebDriver To switch between frames in WebDriver, use the method 'driver.switchTo().frame()' and provide arguments such as number, name, ID, or the previously located web element.", 'Difference between Selenium and QTP Selenium and QTP differ significantly, making it essential for interviewees to understand the reasons for choosing Selenium over QTP.']}, {'end': 36819.325, 'start': 36539.955, 'title': 'Selenium vs qtp comparison', 'summary': 'Compares selenium and qtp based on browser compatibility, distribution, languages supported, vendor support, and application testing, highlighting that selenium supports more browsers, multiple languages, and is open source, while qtp has vendor support and supports both web-based and windows-based applications.', 'duration': 279.37, 'highlights': ['Selenium supports almost all popular browsers like Firefox, Chrome, Safari, and Opera, whereas QTP supports Internet Explorer, Firefox, and Chrome, with Selenium supporting a wider range of browsers.', 'Selenium is distributed as an open source and freely available tool, while QTP is distributed as a licensed tool and is commercialized, indicating the difference in distribution models.', 'Selenium supports testing only web-based applications, whereas QTP supports testing of both web-based and windows-based applications, illustrating the difference in application testing support.', 'Selenium supports multiple programming languages like Java, C#, Ruby, Python, Pearl, while QTP supports only VB script, showcasing the difference in language support.', 'As Selenium is an open source tool, users would not get the vendor support and troubleshooting the issues, whereas in QTP, users can easily get the window support in any case of the issue, emphasizing the difference in vendor support.', 'The HTML unit driver claims to be the fastest implementation of WebDriver, as it does not execute the test in the browser, highlighting the fastest WebDriver implementation.', 'The HTML unit driver claims to be the fastest implementation of WebDriver, as it does not execute the test in the browser, highlighting the fastest WebDriver implementation.', 'Selenium automation tool is preferred due to being free and open source, having a fast user base and helping communities, cross browser compatibility, platform compatibility, and multiple programming languages support, underscoring the advantages of using Selenium as an automation tool.']}], 'duration': 1565.337, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/9p6NNapsUvQ/pics/9p6NNapsUvQ35253988.jpg', 'highlights': ['Selenium supports almost all popular browsers like Firefox, Chrome, Safari, and Opera, whereas QTP supports Internet Explorer, Firefox, and Chrome, with Selenium supporting a wider range of browsers.', 'High Selenium IDE is the simplest tool within the Selenium package, making it exceptionally easy to learn, with minimal acquaintances to any programming language.', 'High Different types of locators in Selenium, emphasizing the significance of ID locator as the safest and fastest option for identifying web elements.', 'Page Object Model (POM) POM is a design pattern for creating an object repository for web UI elements, making the automation framework durable and reusable.', 'Synchronization mechanisms in Selenium Explains the conditional and non-conditional synchronization mechanisms in Selenium, detailing the use of timeout values and conditions for achieving synchronization.', 'Features and functionalities of TestNG Lists the features of TestNG, such as support for annotations, data-driven testing, flexible test configuration, and the ability to re-execute failed test cases, making it an efficient testing framework.', 'Difference between Selenium and QTP Selenium and QTP differ significantly, making it essential for interviewees to understand the reasons for choosing Selenium over QTP.']}], 'highlights': ['Selenium WebDriver directly communicates with the browser and uses its native compatibility to automate tasks, providing improved functionality for handling multiple frames, pop-ups, multiple browser windows, and alerts.', 'Selenium supports almost all popular browsers like Firefox, Chrome, Safari, and Opera, whereas QTP supports Internet Explorer, Firefox, and Chrome, with Selenium supporting a wider range of browsers.', 'The need for Selenium web testing has become one of the most integral parts of many businesses, and the chapter aims to provide a thorough understanding about selenium, from theory to practical applications.', 'Selenium offers various frameworks like data-driven testing, keyword-driven testing, and hybrid testing, reducing coding and testing time.', 'Selenium WebDriver is highly efficient as it can easily identify web elements to automate processes.', 'Selenium has the greatest demand among all the tools in the market, with increasing job vacancies and good pay.', "Selenium's history from its origin as an internal tool in 2004 to its development into Selenium RC and WebDriver in 2009, highlighting its purpose as an automation tool for testing web applications, supporting cross-browser functionality and multiple programming languages.", 'Selenium WebDriver, a cross-platform testing framework, provides a programming interface to create and execute test cases, making it faster and more efficient than Selenium RC.', 'Selenium Grid allows parallel test execution on different machines, achieving parallel execution and supporting both Selenium WebDriver and RC.', 'Selenium is open source and free, while QTP is licensed and requires payment.', 'The average annual salary of a test automation engineer is around $90,000 in the U.S., according to the job portal Indeed.', 'The global automation testing market size is expected to grow up to 28.8 billion dollars by the end of 2024, at a compound annual growth rate of 18% during the forecast period.', 'Selenium WebDriver is a different tool altogether, which has various advantages over RC. Selenium WebDriver directly communicates with the browser and uses its native compatibility to automate tasks, providing improved functionality for handling multiple frames, pop-ups, multiple browser windows, and alerts.']}