Today I found this link to the YouTube Iframe API Reference. I find this interesting because I think that adding something like a table of contents to a video could be super helpful when if you want to reference the video. For example with instructional videos, a table of contents could provide an overview of video segments you might be interested in. It would let you quickly jump around instead of manually searching the video to find the point that you are interested in.
I used to go to user group meetings to find out the latest and greatest in programming and software development. I could see this API being used after the video is filmed and adding click points. I always want to tell friends about something that I learned at a presentation, and with the content links I could share the exact point where I liked the content.
I can imagine if video place markers were sharable then we might have metrics where we can see what points of a video are getting the most interest and shares.

Trouble Shooting

Recently my team at HomeAway got personal profiles done from http://www.insights.com. It was quite a fun process. Under their categorization, I am a Creative Inspiring Motivator. This is what came back as my key strengths:

Have you ever wanted to open a url from the command line on OS X? Turns out open can do many cool things like that.

open -a ‘google chrome’ ‘http://www.scottcsims.com’

open -a Firefox.app http://www.scottcsims.com

Sometimes a parallel Selenium run might get out of control and you need to close all your browsers, try this one from the command line:

killall firefox

Yes, I know killall is a very old Unix command, but I didn’t know that I could pass it an application name that a OS X has bound to an executable.

killall firefox-bin
orkillall firefox

I like the -a and -e options for open.

Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b ] [-a ] [filenames] [--args arguments]
Help: Open opens files from a shell.
By default, opens each file using the default application for that file.
If the file is in the form of a URL, the file will be opened as a URL.
Options:
-a Opens with the specified application.
-b Opens with the specified application bundle identifier.
-e Opens with TextEdit.
-t Opens with default text editor.
-f Reads input from standard input and opens with TextEdit.
-F --fresh Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
-R, --reveal Selects in the Finder instead of opening.
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
-n, --new Open a new instance of the application even if one is already running.
-j, --hide Launches the app hidden.
-g, --background Does not bring the application to the foreground.
-h, --header Searches header file locations for headers matching the given filenames, and opens them.

I had a great time attending the Test Automation Bazaar in Austin. Alister Scott put on a contest to see who could write a program to win Minesweeper. After checking out what was required, I started coding the Minesweeper robot. Before I noticed, I had spent hours coding tests and methods for the robot. It was one of the most addictive and exciting code I had written. I spent about 3 days coding along to get something to win on basic and intermediate level. I spent hours trying to win on advanced.

I ended up winning the Minesweeper Challenge! I encourage everyone to take a look at Alister’s code. Alister wrote some of the best cukes and examples I have seen. I was very impressed by the time he put into writing unit tests that work on logic only, taking the browser out of the mix. Thanks Alister for putting on the contest. If you wish to see what 3 days of coding gets you in a mine sweeper robot you can checkout my code on github. As I mentioned before I got really engaged with writing this code. I could have spent weeks tuning and polishing it. I did have a chance to refractor the code to use Nokogiri instead of the find all elements selenium method to check the game state. I believe that this might have actually slowed it down.

Sadly to say, I had to withdraw from polishing and tuning the code. If you want to run my robot checkout the code and run the test “Minesweeper should win” in this file.

What should you expect SeleniumFury to find on a page for you? Take a look behind the curtains at the PageParser class on git hub.
You will find that I am using Nokogiri xml parser to find elements and you will see this list of html elements that I am looking for.

For more complex UI elements like jquery select menus, I usually will define the class and write a unit test for the actions that can be done on the component.
You can use the page method on PageObject to define a subpage or page component like this.