-
Getting Started with the Appium Perl Bindings
We've started work on a set of Perl client bindings for Appium. We're using Appium to test out a few different ideas for mobile apps, and since our existing browser automation framework is written in Perl, it makes sense to use Perl for our mobile automation as well. I recently received an email from probably the first person other than myself interested in such a pairing (Perl & Appium) for some help getting started, so I'm putting together a collection of steps to get going with the Appium Perl bindings.
-
Using SIPE through Bitlbee in Emacs on OS X Mavericks
I like using Emacs as often as possible. Our work server was previously jabber, so I was using the excellent
jabber.elto chat with my coworkers. We're switching over to Microsft Lync, so it appears my best option is to use Bitlbee and an Emacs IRC client (like Circe!). Bitlbee is a server that you can run on your computer that acts as a gateway to different chat protocols. It handily exposes your IM interactions to you through an IRC server. One of the protocols it supports is SIPE, which is what Microsoft Lync uses. It was slightly involved to get all the pieces working together; here are the steps I followed. -
drag'n'drop with Perl, Webdriver, and Selenium::Remote::Driver
(This post is direct language translation of ep 39 of Elemental Selenium, Dave Haeffner's Ruby series about Webdriver. Go check 'em out, even if you don't use Ruby, as Webdriver concepts are the same across bindings. We're even reusing his fixture code, as it's quite useful!)
Although the webdriver protocol offers a few endpoints that allow you to accomplish drag and drop (button_down, mouse_move_to_location, and button_up), there's an outstanding bug in webdriver for those endpoints on HTML5 pages. So, there's nothing we can do from the side of the Perl bindings, as invoking the endpoints won't actually do the drag and drop. Luckily, there's a javascript workaround that allows us to simulate drag and drop events with jQuery (or Zepto), courtesy of Rob Correia's gist.
-
Upcoming updates for Selenium::Remote::Driver
We're gearing up for the release of v0.22 of Selenium-Remote-Driver, a set of Perl bindings for the Webdriver project. My primary motivation to get a new release out is to tweak some of the classes to be more easily extended, so that the perl bindings for Appium can be written more cleanly. But, there's also some cleanup for deprecated functions and a few bugfixes included, along with plans for another release in the near future.
- Before we get in to the changes, here's a heads up about the new mailing list for the perl bindings: https://groups.google.com/forum/#!forum/selenium-remote-driver :D
-
Playing with the new Perl bindings for the BrowserMob Proxy
Browsermob Proxy is an open source project that Patrick Lightbody split off from the main Selenium project. It works really well in tandem with Selenium Webdriver, but it was missing Perl bindings. BMP exposes a RESTish interface for interacting with the proxies, so I've strung together a Perl module to take care of it: Browsermob::Proxy. Amongst other things, you can use BMP to throttle net traffic during tests, analyze request/response pairs for things like Omniture and Google Analytics, and even alter the requests on the fly with custom headers. Here's a short run down and some basic get-started scripts for using it!