Sign in

Sometime we need to import the data from external resource likes Excel, Csv or even database into Robot Framework. We often found out that some of the data property may have None value. So let’s check how to handle None value.

This solution will have an error if text variable have any value that not None.

I found that this solution on Stack overflow. But it will have an issue if our text string have special character “”. Example John” Smith.

Inside the condition we call text variable with special format $text and then we can call…

Mostly Selenium user us finding for element may found some issue that sometime the animation are to fast to capture likes loading animation. This can cause your script randomly not able to detect the loading element. So i suggest to apply the Asynchronous that came with Robot Framework Puppeteer Library

What’s Asynchronous?

Before we go into the detail of asynchronous. We need to under stand synchronous first. Actually most of our script are written in synchronous ways that execute by order likes step 1 then 2 and then 3.

Example login step
Step 1: input username
Step 2: input password
Step 3: submit login
Step 4…

Some pages or forms have an animation likes popup. If we create an automated test script that tries to click that moving button it will not trigger any event.

Example: Try to click close Modal popup during the animation running

Traditional technique

Inline 11 you will found Sleep that uses as a workaround for ensuring animation finished before clicking the dismiss button.

A new technique from Puppeteer

Inline 11 Wait Until Element Finished Animating will loop checking the element finish moving or not by comparing position x and y.

For anyone who loved to use a lightweight code editor. Today RF Puppeteer support VS Code. Let’s check how to setup.

Setup Steps

Config Intellisense

From VS Code Open FilePreferencesSettings

One of the performance improvement from selenium is the way that puppeteer use to handle browser.

Selenium will require a layer to communicate with a web driver then web drivers will communicate with the web browser. This one will take time when script under test setup & teardown. The script needs to clear the existing browser and open a new one.

Hi, this is my first review gadget. I have a part-time project to create a Python web testing library called robot framework-puppeteer. The problem is I have very limited time for coding this project. That why I came up with idea coding everywhere should be a good answer.

Start with Tablet

Between MS Surface & Android Tablet. Finally, I choose android due to I still want to use android applications and tablets sometime when I want to surf the internet.

Visual testing is an automated process of detecting and review UI Changes. Example compare home page v1.1 with home page v1.2 offers a one-stop service for visual testing. Allow our automate script to send the UI screenshot for each page and Percy will help us to identify the change compare with baselines data.

Puppeteer has killer features that help us to resolve the flaky tests called async function.

Selenium flaky tests

One of the reasons why selenium script is flaky, because of some animation extremely fast and can’t handle synchronous. How we handle loading screen animation in Selenium is we wait for something change in a page. This part is a root cause of the flaky test in Selenium.

Let’s imagine after you click the button and your page show loading that block screen for a while before we can continue to proceed with the next step.

In 2020 have a lot of new technology for web automation testing likes Cypress, Playwright, Puppeteer, etc. Most of them mention the improve Selenium flaky test.
Please check this good explanation for Flaky Selenium Tests

Why Robot framework Puppeteer?

Robot framework Puppeteer created based on 3 core value

  1. Fast: Robot framework Puppeteer use native python puppeteer library name pyppeteer. No transformation or any hop of communication inside test script and browser.
  2. Easy: Most of the keywords similar to Selenium Library. Just a little effort to learn how puppeteer library during with ajax request and response.
  3. Stable: Most of Selenium flaky came from Asynchronous calls…


Senior QA Consultant

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store