舉報

會員
Selenium WebDriver Quick Start Guide
SeleniumWebDriverisaplatform-independentAPIforautomatingthetestingofbothbrowserandmobileapplications.Itisalsoacoretechnologyinmanyotherbrowserautomationtools,APIs,andframeworks.ThisbookwillguideyouthroughtheWebDriverAPIsthatareusedinautomationtests.Chapterbychapter,wewillconstructthebuildingblocksofapageobjectmodelframeworkasyoulearnabouttherequiredJavaandSeleniummethodsandterminology.Thebookstartswithanintroductiontothesame-originpolicy,cross-sitescriptingdangers,andtheDocumentObjectModel(DOM).Movingahead,we'lllearnaboutXPath,whichallowsustoselectitemsonapage,andhowtodesignacustomizedXPath.Afterthat,wewillbecreatingsingletonpatternsanddrivers.Thenyouwilllearnaboutsynchronizationandhandlingpop-upwindows.Youwillseehowtocreateafactoryforbrowsersandunderstandcommanddesignpatternsapplicabletothisarea.Attheendofthebook,wetieallthistogetherbycreatingaframeworkandimplementingmulti-browsertestingwithSeleniumGrid.
目錄(204章)
倒序
- coverpage
- Selenium WebDriver Quick Start Guide
- Packt Upsell
- Why subscribe?
- Packt.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Code in action
- Conventions used
- Get in touch
- Reviews
- Introducing Selenium WebDriver and Environment Setup
- Technical requirements
- Why is test automation required?
- Advantages of test automation
- Some pointers on Selenium
- What's new in Java 8
- Lambda expressions and functional interfaces
- Functional interfaces
- Default and static methods in an interface
- The forEach method for a collection
- Streams in Java 8
- Understanding Selenium RC
- What is cross-site scripting (XSS)?
- Introducing Selenium WebDriver
- Class structure of Selenium WebDriver
- Drivers in Selenium
- Remote WebDriver
- Mobile drivers
- Headless browsers
- Why do we need headless browsers?
- Preparing for the very first script
- Installing Java 8
- Setting up Eclipse
- Downloading Eclipse
- Creating a Maven project
- Understanding pom.xml
- Manual configuration
- Creating the first script
- Summary
- Understanding the Document Object Model and Creating Customized XPaths
- Technical requirements
- What is the DOM?
- WebElements
- SearchContext interface
- DOM traversal
- Dissecting the By class
- The two types of XPaths
- Understanding customized XPaths
- Customized CSS
- An example traversal
- Understanding the text() methods
- Finding elements within the container element
- Best practice
- Extracting WebElements dynamically using tagName
- Properties file for WebElements
- Prerequisites for automating mobile applications
- XPaths for mobile applications
- Finding XPaths for mobile browser applications
- Connecting the actual mobile device
- How to use Screencast
- Appium Inspector window
- How to use UIAutomatorViewer
- Mobile locators
- What is a WebView?
- Introducing the Fillo API
- Debugging in Eclipse
- Summary
- Basic Selenium Commands and Their Usage in Building a Framework
- Technical requirements
- What are method signatures?
- What are Lists in java?
- Important methods in Selenium
- Some common reusable methods
- The difference between quit() and close()
- Understanding the keyword driven framework
- Concept of Map and HashMap
- Bird's eye view of the framework
- Introducing the testng XML file
- Triggering the testng XML from within the POM XML file
- Handling errors while running pom.xml
- Introducing the log4j framework
- Extent Reports
- How to use Extent Reports in code?
- Summary
- Handling Popups Frames and Alerts
- Technical requirements
- Window handles
- Fetching the window handles
- Understanding the Set interface
- A look at the iterator() method
- Modal and non-modal dialog
- Modal and non-modal pop-up windows
- JavaScript and jQuery alerts
- Handling non-modal popup windows
- Introducing the switchTo() method
- Looking at the getTitle() method
- Looping through all open windows using the simple for loop
- Handling modal popup windows
- Modal and non-modal alerts
- Creating JavaScript and jQuery alerts
- Handling non-modal jQuery alerts
- Handling modal JavaScript alerts
- Understanding frames and iframes
- Handling mobile app permission alerts
- DesiredCapabilities
- What is a Desired Capability?
- The DesiredCapabilities class
- Enabling protected mode settings in Internet Explorer
- Learning Chrome options
- Learning the Firefox options and the Firefox profile
- Learning the Internet Explorer options
- autograntpermissions capability on Android
- Summary
- Synchronization
- Technical requirements
- What is synchronization?
- Synchronization types
- Unconditional synchronization
- Thread.sleep(long)
- Conditional synchronization
- Synchronization at the WebDriver-instance level
- Implicit wait
- Synchronization at the WebElement level
- Explicit wait
- Fluent wait
- Function keyword
- A glance at the JQuery library
- A Sample application using JQuery
- Tomcat setup
- Exposing the JavascriptExecutor
- Pitfall – Never fall into one
- Summary
- The Actions Class and JavascriptExecutor
- Technical requirements
- Builder design pattern
- The actions class
- Various scenarios for the actions class
- Introducing JavascriptExecutor
- Various scenarios for JavascriptExecutor
- EventFiringWebDriver
- First steps toward the framework
- Understanding the Selenium Grid
- Architecture of the Selenium Grid
- Basic setup
- Exercise
- Summary
- The Command Pattern and Creating Components
- Technical requirements
- Introducing the command design pattern
- Client
- Command
- Receiver
- A look at the project structure in Eclipse
- Introducing the TestNG framework
- Installing the TestNG plugin for Eclipse
- A look at testng.xml
- Incorporating Selenium Grid
- Running tests in parallel
- Emailable report
- Summary
- Hybrid Framework
- Technical requirements
- Introducing the WebDriverManager library
- How to use the WebDriverManager library
- WebDriverManager as a Java dependency
- WebDriverManager as CLI
- WebDriverManagerServer
- Advantages of WebDriverManager
- DataProviders in TestNG
- Having a separate DataProvider class
- Introducing TestNG listeners
- Different types of listeners
- Implementing the ITestListener interface
- Extending the TestListenerAdapter class
- Introducing assertions
- Testing for a negative scenario
- Two different types of asserts
- Using soft asserts
- Implementing logging and reporting in the framework
- Incorporating reporting in the framework
- Creating a custom XL file from testng-results.xml
- Adding keywords to the framework
- Creating reports using Fillo
- Generating screenshots in Selenium
- Using the Ashot API
- Some extra location techniques in Selenium WebDriver 3
- Understanding ByIdOrName
- ByAll locator
- ByChained Locator
- Welcome Selenium 4
- Next steps
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 18:26:54
推薦閱讀
- Modern Web Testing with TestCafe
- 從零開始寫Linux內核:一書學透核心原理與實現
- Ansible權威指南
- BPEL and Java Cookbook
- 精解Windows 8
- SharePoint 2013 WCM Advanced Cookbook
- Linux運維最佳實踐
- 嵌入式實時操作系統:RT-Thread設計與實現
- Microsoft Operations Management Suite Cookbook
- VMware NSX Cookbook
- INSTANT Migration from Windows Server 2008 and 2008 R2 to 2012 How-to
- Fedora 12 Linux應用基礎
- Learn CUDA Programming
- Building Telephony Systems With Asterisk
- Linux操作系統案例教程(第2版)
- 鴻蒙HarmonyOS應用開發入門
- Learning Joomla! 3 Extension Development(Third Edition)
- Serverless Architectures with Kubernetes
- Mastering AWS CloudFormation
- Mastering Spring Cloud
- Embedded Systems Architecture
- Linux系統編程
- STM32庫開發實戰指南:基于STM32F103(第2版)
- 容器云的關鍵理論和方法研究
- Hands-On Reactive Programming with Python
- 統信UOS系統管理教程
- 跟老男孩學Linux運維:高性能Web集群實踐(上)
- Concurrent Patterns and Best Practices
- Getting Started with Red Hat Enterprise Virtualization
- Android底層開發實戰