Suppose you are running a long Selenium test. The test runs fine but fails towards the end as some element was not found or was not clickable. Ideally, you would like to fix the locator and check it immediately. Now you wonder if you can reuse your browser session from the same point where the failure occurred. This post shows […]
How to reuse existing Selenium browser session
Selenium- Firefox/geckodriver installation issue
Problem: Our selenium scripts started failing when we were running our tests on Firefox browser version 47 or higher. After a little bit of research we came to know that Selenium WebDriver 2.53.0 is not compatible with Firefox 47.0 or higher. The WebDriver component which handles Firefox browsers will be discontinued and we had to use geckodriver instead. Why this […]
Selenium to get browser console log
The browser console log, along with debugging also helps us capture errors that occurred when using a web application. Your developers will thank you when you include console errors in your bug reports. As part of running your GUI automation, it is a good habit to check and report the errors present in the browser’s console. In this post, I […]
pytest: Cross browser, cross platform Selenium tests
We showed you how to run tests on BrowserStack using pytest in our previous post – pytest and Browserstack. We had an example test and ran it across one browser from the command line argument. What if we need to run it across different browser versions, platforms and platform versions? Why this post? pytest responds really well when we run […]
Get started with SQLite and Python
There are times when we repurpose our automated checks to scrape information off the pages it visits. This can happen when you are using automation to explore a product, looking for patterns in client data, analyzing production data to spot patterns, etc. Storing the scraped data can be tricky. Approaches to storing the scraped data range between two extremes: a) […]
How to write CSS selectors
Why this post? Testers need to know multiple ways of locating an element in a webpage as different strategies have to be used based on the context since each has its own advantage. The Cascading Style Sheet(CSS) is defined to structure and style the HTML in the webpage. These CSS patterns can be used to uniquely identify elements in the […]
JavaScript evaluate() and XPaths
I recently used a neat solution that involved JavaScript evaluate() and XPaths as part of an automated GUI check. I am good with Python and writing XPaths for locators but not so good with JavaScript. I needed to locate an element in the DOM and then change a specific attribute. The solution was simple enough that I did not have […]
Connecting to BrowserStack from CircleCI containers
Problem: How do I connect to BrowserStack from CircleCI’s build containers? Why this post? A recent Qxf2 client was using CircleCI for their continuous integration and deployment needs. Partnering with our client, we had identified that it would be useful to run a minimal set of automated GUI tests as part of their continuous integration and deployment process. The GUI […]
Setup Python and Selenium tests on CircleCI
Problem: Many testers do not get a chance to explore CircleCI Why this post? CircleCI is powerful, fast and easy-to-use Continuous Integration and Deployment tool for web applications. CircleCI seems to be growing in popularity as a cloud based continuous integration and deployment tool. Due to a variety of reasons, many testers do not get the opportunity to explore and […]
Selenium & HTML5 canvas: Verify what was drawn
Problem: How do you verify what was drawn on a canvas element using Selenium? Why this post? The HTML5 canvas element is opaque to Selenium and does not lend itself well to GUI automation. An application I was testing had an HTML5 canvas element that users could interact with. Users could place pre-defined objects upon the canvas element and then […]