我正在使用硒和黄瓜测试网站上的链接。这些链接自然会加载到当前浏览器窗口中。虽然当我运行测试时,它们每次都会在新窗口中打开!即使打开网页 .get 也会打开一个全新的窗口。我在这里想念什么?
到目前为止,我只在 Firefox 中进行测试
环境.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 中的设置以在新选项卡中打开窗口(基于另一个问题),并且我意识到 selenium 正在打开一个具有所有旧设置的 Firefox 实例。我没有安装多个版本的 Firefox 我也不明白这可能来自哪里。
步骤定义:
When /^I am viewing Google$/ do
if @driver.current_url != "www.google.com"
@driver.get "www.google.com"
end
end
重复此代码将加载许多窗口。还有与网站的任何 .click 交互
我最近问了一个与此类似的问题(没有意识到我在重复自己)这里是任何感兴趣的人的链接: