Waiting for elements on dynamic webpages Selenium / Webdriver

Below is my current favorite method to wait for an element to appear or become useful on a dynamic web page. In this case, my example is avoiding the exception thrown when webdriver fails to find an element by using the ‘find_elements’(plural) method rather than a ‘find_element’(singular) The ‘find_elements’ methods always return a list, even if empty, rather than throw an exception. Both are useful, but in this case I like the more readable code without the try/except requirements.

Python ErrorList object for use in Webdriver Testing

Here’s a bit of code from a post that was lost when my old site went down, data and all. I don’t recall if the original post was this python version or my original Java version (sorry if that’s what you’re here for, ask in comments and I can find and post that too) It’s an implementation of an ‘assert’ statement that allows for the test to continue on failure, storing the error.

A Couple Personal Projects: NerdlyNews and PageLoadStats

I have worked on several web based projects. I recently created NerdlyNews, which uses Bayesian logic to grab interesting news from sites that I really like. I’m using a wordpress front-end for that one, and the JetPack extension so I can have the output of the Bayesian algorithm posted to the site using WordPress API’s. It’s really a nice way to go since I’m not a UI designer. I also created PageLoadStats.

Combining Two iTunes Libraries, No Duplicates Wanted.

I needed to merge my wifes iTunes Library with mine, and decided to write a python script to handle it for me. My main requirement was to not create duplicates, and copy to my library only the music that was exclusive to her library. Basically, copy from hers what I didn’t have. This script should work fine on any two directories with music files. It will simply look for music based on song-title, artist and album info, not by file name or size.

A Bit of Modular Web Design in Django

I found myself creating a web page intended to display a set of data objects, each object similar in format. A pretty common need. The simple thing to do would be to simply iterate over the list of data in the django template, for example: {% for o in some_list %} <div>#display data here#</div> {% endfor %} I want to be able to re-use and centrally control how the data is displayed, anywhere on the site.

Software QA: Jenkins + Jenkins Slave Nodes + Selenium 2 + Browsermob Proxy

I’ve just finished a new test setup that allows me to capture network traffic in a test suite that is launched by Jenkins onto a Selenium 2 Grid. It was as painful as it sounds, but just as satisfying to complete. One of the big hurdles was the need to run the tests via Jenkins and capture the network traffic generated by the test, which occurs on an unknown Selenium node.

Naive Bayesian Probability is very cool…add bi-grams for extra coolness.

I’ve written a Django web-app that I’m still tinkering with. I have it slowly gathering information from multiple sources and classifying each piece (corpus) for me. I’m really happy with the progress. NLTK made implementation pretty straight forward, though there was a definite learning curve for me. I have no background in this field, so I had to learn a bit. For someone approaching this problem that already has the right linguistics and some python background, I’ll bet that it’s amazingly easy to get started.

My New Site

Sadly, for me at least, the data for my site was lost. Multiple copies, all useless bits. So I’ve set up a new WordPress site. Never again will I try Drupal, thank you very much. It was too complicated, required maintenance, and seems to have eaten my data. That’s not entirely fair, but it did contribute to the problem, making recovery much more difficult. Hopefully I can recover some history, bit by bit, over time.

about_me

I am Robert Arles, a developer and problem solver. I am a senior test developer. My development and systems operations experience is fairly broad. I am the author of Betwittered (now long defunct due to Twitters shift away from it’s developer community). I’ve done development in Python, Java, PHP, Javascript, HTML/CSS, and some Perl, etc. I’ve used Django, Play, TestNG & JUnit, Nosetests and then some. I’ve built a couple of test frameworks from scratch, and have used a couple of different methods to facilitate test bootstrapping.