Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jubula-rc-dev] Webdriver AUT Agent

Hi Markus,

I've created a branch containing some initial progress on webdriver. See [1].

I've upgraded to latest selenium, completely replaced the old Selenium with native WebDriver (skipping WebDriverBackedSelenium), and fixed up some differences between the two (e.g. around how the _javascript_ is executed). This is working for me - but probably has many gaps to the current selenium impl, which I hope to fill with your help. I've left a few TODO's in the code for things I know I'll need to come back too.

I would be very grateful if you could take a look, and let me have any general thoughts. It's probably not yet polished enough to warrant a thorough review, but any feedback you have will be appreciated. Is there a test suite I can use to see where my changes break current behaviour?

In addition, I was hoping you (or someone) could help me with a few thoughts:
  1. Sometimes it seems that test step failures aren't producing helpful error messages in the ITE, but webdriver has some specific information about wht has failed. e.g. if a click fails because the element is not visible. How should I be exposing these to the ITE?
  2. I'd like to support some Mouse movement commands. This seems to be fairly straightforward from a webdriver perspective, but I could do with some pointers on how to integrate with the jubula UI. I'm particularly keen on adding a "hover over" test step, but eventually drag and drop too. My current code has a naive implementation of IRobot.mousePress, move and mouseRelease (only for left mouse button). Where should I be looking to hook these all together?
  3. Equally, how can I enable the "Take screenshot of active window" command? Webdriver seems to provide a handy way to do this, but I cant see what I need to implmenet to tie it together. I've not quite got my head around all the different projects (and repositories!) necessary for the complete product...
  4. I would like my tests to be more robust to simple changes in our page's DOM. In particular, I'd like to implement some form of component identification that uses an element ID, rather than (or perhaps combined with) it's absolute position within our DOM. One thought I had was whether this should be an (optional) alternative AUTHtmlHierarchy, but it seems I may still need to maintain the FQ path as this is what the OMM uses. Is it worth considering OMM that interrogates WebDriver directly rather than using the current _javascript_ based DOM approach?
  5. Lastly, I'm not clear what the expected behaviour is for singleWindowMode or multiple frames. Is singleWindowMode Selinium specific functionality that can be dropped? For now my naive approach is just a single window and single frame.

Kind regards,

From: jubula-rc-dev-bounces@xxxxxxxxxxx [jubula-rc-dev-bounces@xxxxxxxxxxx] on behalf of Markus Tiede [Markus.Tiede@xxxxxxxxx]
Sent: 16 February 2015 09:08
To: Jubula remote control components development
Subject: Re: [jubula-rc-dev] Webdriver AUT Agent

Hello Dave,


we are ourselves also interested in switching Jubulas HTML RC part to a Webdriver based approach - see [1].


The current implementation is hosted publicly @bitbucket - see [2]. I think the current implementation might be a good starting point.


Keep in mind that the AUT-Agent itself is not responsible for the remote controlling part - it's simply invoking - see [3] - and monitoring the AUTs process (which is for the HTML toolkit an AbstractStartPseudoJavaAUT).


Best regards,

Markus Tiede


Von: jubula-rc-dev-bounces@xxxxxxxxxxx <jubula-rc-dev-bounces@xxxxxxxxxxx> im Auftrag von Dave Ball <d.ball@xxxxxxxxxxxx>
Gesendet: Samstag, 14. Februar 2015 18:10
An: jubula-rc-dev@xxxxxxxxxxx
Betreff: [jubula-rc-dev] Webdriver AUT Agent
 
Hi,

I am interested in writing an AUT Agent that uses webdriver APIs directly, rather than through selenium. Eventually I want to use this for testing a Vaadin based app across a number of target platforms.

I have had a play and produced a very hacked together experiment as a learning exercise, but now planning to start from scratch with a (hopefully) properly structured implementation.

So to help me kick this off, is this something anyone has looked into in the past, and do you have any suggestions on the best way to start, or ideas i should look to incorporate?

Many thanks,
Dave





Back to the top