porting the deploy plugin test case
Shut down the container if the test dies in the middle
another helper class to assist cleanup
This is probably the simplest way to ensure cleanup
Keep the error throwing code in find() method useful for breakpoint
sendKeys doesn't always work.

sendKeys really just simulate sending keys.
Browsers try to select the option that matches the typed text,
but there are some keys that are interpreted differently, such
as SPACE, which selects the next option from the current option.

A more reliably way to select a specific option is to call
click on the <option> element.

This allows selection by not only the text but also the value.
Insert a wait for a job to show up properly.

I'm puzzled by this error, since the addition of the job
is synchronous to the job creation. Maybe it's a memory
barrier problem?
wait until we find a visible element.

if none of the element is visible, rather than returning
with the first element and hope for the best, wait until
something becomes visible.

this is useful because Jenkins often changes visibility of
elements in reaction to the user action, and that can take
a bit of time.

So if the find method runs too fast, it can end up picking
up a non-visible element.
To improve debuggability, show the console page while waiting for the build to complete.
induce the onchange event.

(but I'm no longer very clear if that was the cause of the problem I was seeing!)
Implemented the test case fully
follow other step definitions and just expose the control