【问题标题】:Android Driver throwing error, when trying to automate尝试自动化时,Android驱动程序抛出错误
【发布时间】:2013-10-06 09:28:02
【问题描述】:

我正在尝试使用 selenium(Android 驱动程序)和 ruby​​ 脚本来自动化移动浏览器, 这是相同的示例脚本

require 'selenium-webdriver'
require "selenium/client"
caps = Selenium::WebDriver::Remote::Capabilities.android  
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)  
driver.navigate.to "http://www.google.com"  
element = driver.find_element(:name, 'q')  
element.send_keys "Example google"
element.submit  
puts driver.title  
driver.quit

它执行步骤直到sendkeys, step 但之后,它抛出错误,捕获的错误是

EOFError: end of file reached
        from C:/Ruby200/lib/ruby/2.0.0/net/protocol.rb:153:in `read_nonblock'
        from C:/Ruby200/lib/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill'
        from C:/Ruby200/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
        from C:/Ruby200/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
        from C:/Ruby200/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_l
ine'
        from C:/Ruby200/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_r
equest'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1376:in `request'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1369:in `block in request'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:852:in `start'
        from C:/Ruby200/lib/ruby/2.0.0/net/http.rb:1367:in `request'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/http/default.rb:83:in `response_for'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/http/default.rb:39:in `request'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/http/common.rb:40:in `call'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/bridge.rb:634:in `raw_execute'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/bridge.rb:612:in `execute'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/remote/bridge.rb:428:in `submitElement'
        from C:/Ruby200/lib/ruby/gems/2.0.0/gems/selenium-webdriver-2.35.1/lib/s
elenium/webdriver/common/element.rb:179:in `submit'
        from (irb):14
        from C:/Ruby200/bin/irb:12:in `<main>'irb(main):015:0> puts driver.title

我还尝试了IRB 中的所有命令,以确认它不是由于超时异常。 请建议,究竟是什么问题以及如何从移动浏览器自动化中的这种情况中克服。

提前致谢:)

【问题讨论】:

  • 很好奇 - 你的意思是使用集线器吗?还是您想在本地运行它?
  • 我正在尝试在本地运行它,在模拟器上运行它。
  • 好的,因为您使用的是集线器。集线器应该是专用机器。我会回答这个问题-
  • 你在使用 HTMLUnit 吗?
  • 不,我没有使用 HTMLUnit,我已经发布了原始脚本并在问题中出现错误。这是我的第一个移动自动化脚本,我无法找出错误的原因......任何建议都会有很大帮助\

标签: android ruby selenium android-emulator webdriver


【解决方案1】:

我在针对真实设备和模拟器进行自动化时遇到 EOF 错误(尽管在不同的点)。

解决方案是卸载新的 android-server-2.32.0.apk 并安装旧版本的 android-server-2.21.0.apk。

【讨论】:

    猜你喜欢
    • 2019-04-22
    • 2017-06-06
    • 2014-09-01
    • 2012-09-16
    • 2010-12-07
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多