selenese-runner-java icon indicating copy to clipboard operation
selenese-runner-java copied to clipboard

Bring back support for android driver for use with Selendroid

Open josepedrocorreia opened this issue 10 years ago • 4 comments

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 avatar Apr 02 '14 14:04 josepedrocorreia

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 avatar Apr 04 '14 13:04 josepedrocorreia

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

josepedrocorreia avatar Apr 07 '14 12:04 josepedrocorreia

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

vmi avatar Apr 12 '14 15:04 vmi

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)

josepedrocorreia avatar Apr 14 '14 14:04 josepedrocorreia