Page Object Model

To improve my automation skills, I am working on a QA Automation project where I have to solve various Test Cases that test many aspects of the web-application. I have started this project with the main goal of developing better understanding of Page Object Model, Selenium and PyTest. For the bigger projects it is very important to correctly design and structure the project itself. Very popular design pattern for this purpose is called Page Object Model. This way, I would like to sum-up some of the things I have learned about POM so far. ...

August 7, 2023 · 4 min · 786 words

Locating Elements

[TOC] Web element interactions are at the core of web automation using Selenium and Python. By leveraging the various locator strategies available, you can precisely locate and interact with web elements. Modern websites can be very complex and unique, therefore learning different locators can be a great investment. Benefits of knowing various locator strategies: Precise Element Identification: Locators allow you to target specific elements on a web page accurately. Flexibility and Adaptability: Locators provide flexibility in locating elements by offering different strategies such as ID, class name, tag name, etc. Maintainability and Robustness: Locators help in creating maintainable and robust automation scripts. Reusability: Once you define a locator for an element, you can reuse it across multiple test cases or scenarios. Improved Readability: Locators make your automation scripts more readable and understandable. Enhanced Debugging and Troubleshooting: When an automation script encounters an issue, having well-defined locators makes debugging and troubleshooting more manageable. Cross-Browser and Platform Compatibility: Locators help ensure cross-browser and platform compatibility. Reduced Maintenance Effort: With reliable locators, your automation scripts require fewer updates and maintenance efforts. Locator strategies As mentioned before, Selenium comes with many locators, such as: ...

May 26, 2023 · 4 min · 763 words

Expected Conditions

One essential aspect of Selenium is handling synchronization issues (for example, AJAX loading screen), where the automation script needs to wait for specific conditions to be met before proceeding. This is where “Expected Conditions” come into play, providing a flexible and efficient way to wait for elements or certain states to appear or change on a web page. What are Expected Conditions? Expected Conditions are predefined conditions that Selenium can wait for, ensuring that the desired state or element is available before performing an action or assertion. These conditions are part of the selenium.webdriver.support.expected_conditions module and can be used in conjunction with the WebDriverWait class to implement effective synchronization in your automation scripts. ...

May 17, 2023 · 2 min · 350 words

Exception Handling

One of the most important features of Python is its ability to handle exceptions gracefully. Exception handling is the process of detecting and dealing with errors that occur during the execution of a program. In Python, exception handling is implemented using a combination of try, except, else, and finally blocks. Exception Handling The try block The try block is the section of code where you put the code that may raise an exception. It is essentially a “sandbox” where you can test your code for potential errors. If an exception occurs in the try block, the code execution jumps to the corresponding except block. ...

April 21, 2023 · 4 min · 656 words

Finding element with partial id in Selenium

I am currently automating some tasks with selenium and I faced a challenge where an element would render each time with a slightly different ID - the first part would be the same, but the ending would be different, such as id=navbarTop_13123. Part navbarTop_ would always be the same, but the ending different. Partial ID Selectors Partial ID selectors are a powerful feature of CSS selectors that allow you to select elements based on a partial match of their id attribute. This can be useful when the id attribute of an element contains a dynamic or changing value, and you need to select the element based on only part of the id attribute. ...

April 4, 2023 · 2 min · 237 words