セレンとキュウリを使用して 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 インタラクション
私は最近、これに似た質問をしました(私が少し繰り返していることに気づきませんでした)興味のある人のためのリンクは次のとおりです。