android webdriver with ruby EOFError

218 views
Skip to first unread message

matt

unread,
Jun 25, 2013, 4:37:52 PM6/25/13
to seleniu...@googlegroups.com
I've setup the Android SDK and emulator using the following steps:  http://code.google.com/p/selenium/wiki/AndroidDriver 

I'm trying to get android webdriver to work with ruby on a Mac OS X with Mt. Lion.  I do see the WebDriver as an app on the Android Emulator.  When I open it, it says "WebDriver Ready" then that goes away and I'm left with only a title bar at the top that says "WebDriver".

I have setup the AVD with a target of Android 4.2.2 - API Level 17 ran the following command line statements:

./adb -e install -r android-server-2.32.0.apk
./adb forward tcp:4444 tcp:8080
./adb shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

Here's my ruby snippet I'm attempting:
require 'selenium-webdriver'
browser = Selenium::WebDriver.for(:remote, :desired_capabilities => :android, :url => "http://localhost:4444/wd/hub/")
browser.get "http://www.google.com"

Here's the error log I get in the command window when I run the ruby script:

/Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock': end of file reached (EOFError)
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1293:in `request'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:745:in `start'
from /Users/xxx/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1284:in `request'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:629:in `raw_execute'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:98:in `create_session'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:68:in `initialize'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/android/bridge.rb:21:in `initialize'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/driver.rb:39:in `new'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/driver.rb:39:in `for'
from /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver.rb:67:in `for'
from awatir.rb:16:in `selenium_run'
from awatir.rb:44:in `<main>'

David Tran

unread,
Jul 8, 2013, 2:02:54 PM7/8/13
to seleniu...@googlegroups.com
Here's what I use:

$ adb -s 4df79ff724c2cf75 forward tcp:8080 tcp:8080


require "selenium-webdriver"
require "selenium/client"


include
Selenium::WebDriver::DriverExtensions::HasTouchScreen

caps
= Selenium::WebDriver::Remote::Capabilities.android(:javascript_enabled => true, :css_selectors_enabled=>true)
client
= Selenium::WebDriver::Remote::Http::Default.new
client
.timeout = 480
driver
= Selenium::WebDriver.for(
 
:remote,
 
:url => "http://localhost:8080/wd/hub",
 
:http_client => client,
 
:desired_capabilities => caps)


Michael Hansen

unread,
Dec 9, 2013, 12:05:41 PM12/9/13
to seleniu...@googlegroups.com
I don't know if you got an answer to this.

I was having the same issue and solved it by installing the older android-server (android-server-2.21.0.apk).
Reply all
Reply to author
Forward
0 new messages