Mastering selenium webdriver 3.0 boost the performance and reliability of your automated checks by mastering Selenium WebDriver

Complement Selenium with useful additions that fit seamlessly into the rich and well-crafted API that Selenium offers About This Book Understand the power, simplicity, and limitations of the core Selenium framework Write clear, readable, and reliable tests that perform complex test automation tasks...

Descripción completa

Detalles Bibliográficos
Otros Autores: Collin, Mark, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England ; Mumbai : Packt 2018.
Edición:Second edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630443006719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Contributors
  • Packt Upsell
  • Table of Contents
  • Preface
  • Chapter 1: Creating a Fast Feedback Loop
  • Making it easy for developers to run tests
  • Building our test project with Apache Maven
  • Running your tests in parallel
  • Parallel tests with TestNG
  • There are no silver bullets
  • Multiple browser support
  • Downloading WebDriver binaries automatically
  • Going headless
  • What happened to GhostDriver?
  • Summary
  • Chapter 2: Producing the Right Feedback When Failing
  • Location, location, location
  • Tests are living documentation
  • Reliability
  • The test automation team that works in isolation
  • Oh, that test always flickers - don't worry about it
  • Baking in reliability
  • Git
  • Subversion
  • Continuous integration is key
  • Setting up TeamCity
  • Setting up Jenkins
  • Extending our capabilities by using a Selenium-Grid
  • A picture paints a thousand words
  • Don't be afraid of the big bad stack trace
  • Summary
  • Chapter 3: Exceptions Are Actually Oracles
  • NoSuchElementException
  • NoSuchFrameException
  • NoSuchWindowException
  • ElementNotVisibleException
  • StaleElementReferenceException
  • InvalidElementStateException
  • UnsupportedCommandException
  • UnreachableBrowserException
  • SessionNotFoundException
  • WebDriverException - element is not clickable at point
  • NoAlertPresentException
  • Summary
  • Chapter 4: The Waiting Game
  • Are we nearly ready yet?
  • I've timed it, and I know it takes 5 seconds for the page to load
  • Machine specification
  • Server specification
  • JavaScript engine performance
  • Networks
  • So, what do we do?
  • I just want Selenium to do it for me
  • Page load timeout
  • Script timeout
  • Implicitly wait timeout
  • It can slow my tests down?
  • It can break explicit waits?
  • The explicit wait that never finds an element.
  • Hang on, I've tried this and it didn't work that way for me!
  • The explicit wait that works, but slows your tests down
  • The solution
  • Using explicit waits
  • Fluent waits, the core of explicit waits
  • Functions
  • Java8 lambdas
  • Summary
  • Chapter 5: Working with Effective Page Objects
  • Why do you keep repeating yourself?
  • Starting out with page objects
  • Separation of concerns with page objects
  • Introducing the Java PageFactory class
  • Using PageFactory annotations
  • Initializing proxied objects
  • Problems with the Java PageFactory class
  • Introducing the Query object
  • So, which option should I use?
  • Creating extensible page objects
  • Turning your page objects into a readable DSL
  • Fluent page objects
  • Summary
  • Chapter 6: Utilizing the Advanced User Interactions API
  • Getting started with the API
  • Using the API to solve difficult problems
  • Working with hover menus
  • Working with drag and drop
  • Working with offsets
  • Working with access keys
  • The Advanced Interactions API doesn't always work for me
  • Summary
  • Chapter 7: JavaScript Execution with Selenium
  • Introducing the JavaScript executor
  • Let's not get carried away
  • So, what should we do with it?
  • A more complex example
  • Executing complex blocks of JavaScript with the JavascriptExecutor
  • Can I use JavaScript libraries?
  • Should I inject JavaScript libraries?
  • What about asynchronous scripts?
  • Building user interaction into your automation
  • Summary
  • Chapter 8: Keeping It Real
  • File downloads with Selenium
  • The scenario
  • The problem
  • So, what's next?
  • Do you really need to download that file?
  • Checking that links are valid
  • What if I do need to download the file?
  • AutoIt
  • Java Robot class
  • Browser auto download
  • Extending our existing code
  • Downloading a file with the help of Selenium.
  • But that's not the same as clicking on a link and downloading the file
  • Checking that the file we have downloaded is the correct one
  • You cannot track network traffic with Selenium
  • But I really want to track my network traffic!
  • Writing performance tests with Selenium
  • Penetration testing with Selenium
  • Summary
  • Chapter 9: Hooking Docker into Selenium
  • Introducing Docker
  • Spinning up Selenium-Grid with Docker
  • Running tests against our new Selenium-Grid
  • Starting up Docker containers as part of the build
  • Using a Docker Maven plugin
  • Using Docker compose
  • What about the negatives?
  • Summary
  • Chapter 10: Selenium - the Future
  • Machine learning - the new Holy Grail
  • Visual validation
  • Applitools Eyes
  • So what has this got to do with AI?
  • Self healing tests
  • Having your tests written for you
  • Summary
  • Appendix A: Contributing to Selenium
  • Appendix B: Working with JUnit
  • Appendix C: Introduction to Appium
  • Other Books You May Enjoy
  • Index.