舉報

會員
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
- Invoker
- 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
推薦閱讀
- Linux運維之道(第3版)
- Persistence in PHP with the Doctrine ORM
- Hands-On DevOps with Vagrant
- 混沌工程實戰(zhàn):手把手教你實現(xiàn)系統(tǒng)穩(wěn)定性
- Linux基礎(chǔ)使用與案例
- 從實踐中學(xué)習(xí)Windows滲透測試
- Learn SwiftUI
- Linux網(wǎng)絡(luò)操作系統(tǒng)項目教程(RHEL 7.4/CentOS 7.4)(第3版)(微課版)
- Web Penetration Testing with Kali Linux(Third Edition)
- bash shell腳本編程經(jīng)典實例(第2版)
- Azure Serverless Computing Cookbook
- Linux網(wǎng)絡(luò)操作系統(tǒng)項目教程(RHEL 6.4/CentOS 6.4)(第2版)
- Drupal 7 Mobile Web Development Beginner’s Guide
- Building E-commerce Sites with Drupal Commerce Cookbook
- Oracle Goldengate 11g Complete Cookbook
- Getting Started with Oracle Public Cloud
- 第一行代碼:Linux命令行
- Nginx HTTP Server(Second Edition)
- Apache SkyWalking實戰(zhàn)
- 樹莓派開始,玩轉(zhuǎn)Linux
- 計算機應(yīng)用基礎(chǔ)(Windows 7+Office 2010)
- PowerShell實戰(zhàn)
- 深入Linux設(shè)備驅(qū)動程序內(nèi)核機制
- Android安全機制解析與應(yīng)用實踐
- 深入淺出Linux工具與編程
- 計算機應(yīng)用基礎(chǔ)上機指導(dǎo)與習(xí)題集(微課版)
- RT-Thread設(shè)備驅(qū)動開發(fā)指南
- Windows 8使用詳解
- Citrix? XenApp? 7.x Performance Essentials
- 第一行代碼:Android(第2版)