0

キュウリを使用してカピバラとセレンのWebドライバーを使用してWebページを起動しようとしています。ブラウザは起動しますが、URL を読み込めません。以下は私のenv.rbファイルです

begin require 'rspec/expectations'; 
rescue LoadError; 
require 'spec/expectations'; 
end

require 'capybara'
require 'capybara/dsl'
require 'capybara/cucumber'
require 'capybara/session'
require 'selenium-webdriver'


Capybara.register_driver :selenium do |app|

    profile = Selenium::WebDriver::Firefox::Profile.new

    profile["network.proxy.type"] = 1 # manual proxy config
    profile["network.proxy.http"] = "proxybank.icici.net"
    profile["network.proxy.http_port"] = 8080

    profile.native_events = true 

    Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)

  end



app_host = "https://mobilebanking.icici.com"

Capybara.app_host = app_host

Capybara.run_server = true

Capybara.default_driver = :selenium

私が得るエラーは以下です

D:\cucumberproject>cucumber
In Steps.rb file
Feature: My first feature

  Scenario: launch google page # features\google.feature:4

*** LOG addons.manager: Application has been upgraded

*** LOG addons.xpi: startup
*** LOG addons.xpi: Skipping unavailable install location app-system-local
*** LOG addons.xpi: Skipping unavailable install location app-system-share
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi-utils: Opening database
*** LOG addons.xpi-utils: Creating database schema
*** LOG addons.xpi: New add-on fxdriver@googlecode.com installed in app-profile
*** Blocklist::_loadBlocklistFromFile: blocklist is disabled
*** LOG addons.xpi: New add-on {972ce4c6-7e08-4474-a285-3208198ce6fd} installed
in app-global
*** LOG addons.xpi: New add-on {20a82645-c095-46ed-80e3-08825760534b} installed
in winreg-app-global
*** LOG addons.xpi: New add-on jqs@sun.com installed in winreg-app-global
*** LOG addons.xpi: Updating database with changes to installed add-ons
*** LOG addons.xpi-utils: Updating add-on states
*** LOG addons.xpi-utils: Writing add-ons list
*** LOG addons.manager: shutdown
*** LOG addons.xpi: shutdown
*** LOG addons.xpi-utils: shutdown
*** LOG addons.xpi-utils: Database closed
*** LOG addons.xpi: startup
*** LOG addons.xpi: Skipping unavailable install location app-system-local
*** LOG addons.xpi: Skipping unavailable install location app-system-share
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi: No changes found


  Given I launch the browser # features/step_definitions/google_steps.rb:5
      Timeout::Error (Timeout::Error)
      C:/Ruby192/lib/ruby/1.9.1/net/protocol.rb:140:in `rescue in rbuf_fill'
      C:/Ruby192/lib/ruby/1.9.1/net/protocol.rb:134:in `rbuf_fill'
      C:/Ruby192/lib/ruby/1.9.1/net/protocol.rb:116:in `readuntil'
      C:/Ruby192/lib/ruby/1.9.1/net/protocol.rb:126:in `readline'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:2211:in `read_status_line'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:2200:in `read_new'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1183:in `transport_request'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1169:in `request'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1162:in `block in request'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:627:in `start'
      C:/Ruby192/lib/ruby/1.9.1/net/http.rb:1160:in `request'
      ./features/step_definitions/google_steps.rb:9:in `/^I launch the browser$/
'
      features\google.feature:5:in `Given I launch the browser'

Failing Scenarios:
cucumber features\google.feature:4 # Scenario: launch google page

1 scenario (1 failed)
1 step (1 failed)
1m14.891s
*** LOG addons.manager: shutdown
*** LOG addons.xpi: shutdown
4

2 に答える 2

2

EDIT : Capybara 2 で削除されserver_boot_timeoutました。

カピバラ 2
の場合、 a を 入れてみて、wait.untilそれが役立つかどうかを確認できます。require 'selenium-webdriver'ファイルの先頭にある必要があります。

次の行を変更します。

Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)

これに:

capybara_driver = Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
driver = capybara_driver.browser

wait = Selenium::WebDriver::Wait.new(:timeout => 300)
wait.until { driver.title.downcase.start_with? "my page title" }

これが機能しない場合は、単純な古い ruby​​ sleep を使用することもできます。

sleep(5.minutes)

カピバラの場合 < 2値を
増やしてみてください。Capybara.server_boot_timeoutファイルで次を使用します (存在しない場合は行を追加します) env.rb

Capybara.server_boot_timeout = 300 # 5 mins

Capybara.default_wait_timeテストを実行するときに実際に使用されるものと間違えないでください。また、これらのプロパティは両方とも で値を取りますseconds

実際の Web ドライバーを呼び出す前に、これらの値を更新してください。requireおそらく、すべてのステートメントの直後です。

于 2013-01-08T09:53:52.077 に答える
1

使用している場合app_host=" https://mobilebanking.icici.com "

Capybara.app_host = app_host

次に、に設定Capybara.run_serverする必要がありますfalse。これは、その場合Capybara.run_servertrueマシンのデフォルトのRORサーバーでアプリをホストし、ブラウザーからlocalhostを押してWebアプリを開くためです。

したがって、を設定Capybara.run_server = falseするenv.rbと問題が解決するはずです。

于 2013-03-10T17:44:42.757 に答える