vmi / selenese-runner-java

Selenium IDE native format (selenese and side) interpreter.
Other
140 stars 83 forks source link

Bring back support for android driver for use with Selendroid #105

Open josepedrocorreia opened 10 years ago

josepedrocorreia commented 10 years ago

With release 1.4.0, support was dropped for the Android driver with the comment:

Remove Andorid driver support because it is removed from Selenium 2.40.

However, although the Android driver was indeed removed from Selenium, Selendroid exists, which is even pointed to by the Selenium team at the top of this wiki page.

I know support for Appium was added, but setting up Selendroid for testing web applications is much simpler, so I was wondering if support for this could be brought back.

josepedrocorreia commented 10 years ago

I discovered this can be circumvented by using --driver remote --remote-url http://localhost:4444/wd/hub --remote-browser android --remote-platform android when Selendroid is running on localhost:4444, so if you think this is a valid solution, feel free to close the issue. It would probably be good to document it though.

josepedrocorreia commented 10 years ago

It seems that in this mode type and sendKeys commands don't do anything, so proper support for Selendroid is probably still necessary.

vmi commented 10 years ago

add Selendroid support to "selendroid-support" branch. But I don't test it...

josepedrocorreia commented 10 years ago

Thanks for this. However, I was looking to test the mobile web, not an actual app. I think there are some further adjustments needed to support this. To be clear, this is what I'm talking about. For such a scenario, you shouldn't need to specify an AUT, but currently, if you don't, you get the following exception:

2014-04-14 16:46:54.745] [INFO] Start: Selenese Runner 1.4.4-SNAPSHOT
com.thoughtworks.selenium.SeleniumException: org.openqa.selenium.SessionNotCreatedException: org.json.JSONObject$Null cannot be cast to java.lang.String
java.lang.ClassCastException: org.json.JSONObject$Null cannot be cast to java.lang.String
    at io.selendroid.SelendroidCapabilities.getAut(SelendroidCapabilities.java:77)
    at io.selendroid.server.model.SelendroidStandaloneDriver.createNewTestSession(SelendroidStandaloneDriver.java:205)
    at io.selendroid.server.handler.CreateSessionHandler.handle(CreateSessionHandler.java:42)
    at io.selendroid.server.SelendroidServlet.handleRequest(SelendroidServlet.java:140)
    at io.selendroid.server.BaseServlet.handleHttpRequest(BaseServlet.java:70)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:62)
    at org.webbitserver.handler.PathMatchHandler.handleHttpRequest(PathMatchHandler.java:33)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:62)
    at org.webbitserver.handler.DateHeaderHandler.handleHttpRequest(DateHeaderHandler.java:21)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:62)
    at org.webbitserver.handler.ServerHeaderHandler.handleHttpRequest(ServerHeaderHandler.java:25)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:78)
    at org.webbitserver.netty.NettyHttpControl.nextHandler(NettyHttpControl.java:67)
    at org.webbitserver.netty.NettyHttpChannelHandler$2.run(NettyHttpChannelHandler.java:72)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)