1

セレンとキュウリを使用して Web サイトのリンクをテストしています。当然、これらのリンクは現在のブラウザ ウィンドウに読み込まれます。テストを実行すると、毎回新しいウィンドウで開かれます! Web ページ .get を開いても、まったく新しいウィンドウが開きます。ここで何が欠けていますか?

また、これまでのところFirefoxでのみテストを行っています

env.rb

require 'Rspec'

require 'selenium-webdriver'
include Rspec::Expectations

#=======================================================================================
  Before do
    @driver = Selenium::WebDriver.for :firefox
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 30
    @verification_errors = []
  end

  After do
    #@driver.quit
    @verification_errors.should == []
  end
#=======================================================================================

wait = Selenium::WebDriver::Wait.new(:timeout => 25)

def element_present?(how, what)
    @driver.find_element(how, what)
    true
  rescue Selenium::WebDriver::Error::NoSuchElementError
    false
  end

  def alert_present?()
    @driver.switch_to.alert
    true
  rescue Selenium::WebDriver::Error::NoAlertPresentError
    false
  end

  def verify(&blk)
    yield
  rescue ExpectationNotMetError => ex
    @verification_errors << ex
  end

  def close_alert_and_get_its_text(how, what)
    alert = @driver.switch_to().alert()
    alert_text = alert.text
    if (@accept_next_alert) then
      alert.accept()
    else
      alert.dismiss()
    end
    alert_text
  ensure
    @accept_next_alert = true
  end

奇妙なFirefoxブラウザを開いていることに気付きました。新しいタブでウィンドウを開くようにFirefoxの設定を変更しました(別の質問に基づいて)。セレンがすべての古い設定を持つFirefoxのインスタンスを開いていることに気付きました。複数のバージョンの Firefox がインストールされていないため、これがどこから来ているのかわかりません。

ステップ定義:

When /^I am viewing Google$/ do
if @driver.current_url != "www.google.com"
 @driver.get "www.google.com"
 end
end

このコードを繰り返すと、多くのウィンドウがロードされます。また、ウェブサイトとの .click インタラクション

私は最近、これに似た質問をしました(私が少し繰り返していることに気づきませんでした)興味のある人のためのリンクは次のとおりです。

selenium-webdriver (ruby) を使用した自動テストに同じブラウザ ウィンドウを使用する方法は?

4

2 に答える 2

1

これを env.rb ファイルに追加することもできます。

at_exit do
  if ENV['KEEP_OPEN'] != 'false' || ENV['KEEP_OPEN'] != 'no'
    browser.close
  end
end

本当に必要なのはbrowser.close.

また、コードのどこかで失われたブラウザーを開きすぎたり、初期化したりしている可能性もあります。デバッグできるようにするには、すべてを確認する必要があります...しかし、env.rbファイルの問題ではない可能性があることをお知らせしたいと思いました。

于 2013-06-06T22:32:28.670 に答える