在使用Watir / Rspec的循环中使用多个浏览器需要一些帮助。
我可以使用Watir来使用它,但不知道如何使用Rspec。
Watir(工作代码):
require 'watir-webdriver'
require 'rspec'
browsers = [:ff, :chrome]
browsers.map do |x|
$browser = Watir::Browser.new x
$browser.goto('http://www.google.ca')
$browser.text_field(:id, 'gbqfq').set 'Juventus'
$browser.send_keys :enter
$browser.close
end #End loop
Rspec(不工作):
require 'watir-webdriver'
require 'rspec'
browsers = [:ff, :chrome]
browsers.map do |x|
$browser = Watir::Browser.new x
$browser.goto('http://www.google.ca')
describe 'loop' do
it 'does something' do
$browser.text_field(:id, 'gbqfq').set 'Juventus'
$browser.send_keys :enter
$browser.close
end
end #End describe
end #End loop
以上代码会发生这种情况:
似乎当我包含Rspec describe
时,循环不能按照我的意图工作。
答案 0 :(得分:2)
终于弄明白了:)
以下是任何想要进行多次浏览器测试的人的代码,而不为每个浏览器制作不同的规范。
require 'watir-webdriver'
require 'rspec'
browsers = [:ff, :chrome]
browsers.map do |x|
describe 'Browser' do
before(:all) do
@browser = Watir::Browser.new x
end
it 'goes to Google.ca' do
@browser.goto('http://www.google.ca')
end
it 'searches' do
@browser.text_field(:id, 'gbqfq').when_present(3).set 'Juventus'
@browser.send_keys :enter
sleep 0.5 #roughly takes 0.5s for the images to load.
end
it 'closes browser' do
@browser.close
end
end #end describe
end #end loop
我认为为了使其正常工作,您需要在describe
之后初始化浏览器,而在我describe