Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
selenium WebDriver-如何在测试之间保持登录_Selenium_Rspec_Webdriver - Fatal编程技术网

selenium WebDriver-如何在测试之间保持登录

selenium WebDriver-如何在测试之间保持登录,selenium,rspec,webdriver,Selenium,Rspec,Webdriver,我有单独的测试,而不是正常运行 rspec test_name_spec.rb 每个都包含@driver=Selenium::WebDriver 我需要运行它们并保持登录状态,在测试之间使用相同的窗口 我设置了一个套件,但是当我在(:all)之前使用下面的代码将@driver=分配移动到时,我得到一个错误,因为@driver为空: describe "district" do before(:all) do @driver = Selenium::WebDriver.for :fi

我有单独的测试,而不是正常运行

rspec test_name_spec.rb
每个都包含
@driver=Selenium::WebDriver

我需要运行它们并保持登录状态,在测试之间使用相同的窗口

我设置了一个套件,但是当我在(:all)之前使用下面的代码将
@driver=
分配移动到
时,我得到一个错误,因为
@driver
为空:

describe "district" do
  before(:all) do
    @driver = Selenium::WebDriver.for :firefox
  end 

  require File.join(File.dirname(__FILE__),  "units/set_QA_district_name_spec.rb")
  require File.join(File.dirname(__FILE__),  "units/set_file_uploads_source_location_spec.rb")
  require File.join(File.dirname(__FILE__),  "units/login_as_admin_spec.rb")
end
错误:

1) SetQADistrictName test_set_q_a_district_name
   Failure/Error: @driver.manage.timeouts.implicit_wait = 30
   NoMethodError:
     undefined method `manage' for nil:NilClass
集合的内容\u QA\u区\u名称:

require_relative "../../../spec_helper"
include RSpec::Expectations

describe "SetQADistrictName" do

  before(:each) do
    @driver = Selenium::WebDriver.for :firefox
    @base_url = "http://dmstaffing-stage.herokuapp.com/"
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 30
    @verification_errors = []
  end

  after(:each) do
    #@driver.quit
    @verification_errors.should == []
  end

  it "test_set_q_a_district_name" do
    QA_run_number = "056"
  end

  def element_present?(how, what)
    @driver.find_element(how, what)
    true
  rescue Selenium::WebDriver::Error::NoSuchElementError
    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()
    if (@accept_next_alert) then
      alert.accept()
    else
      alert.dismiss()
    end
    alert.text
  ensure
    @accept_next_alert = true
  end
end
require_relative.../../../spec_helper”
包括RSpec::期望值
请描述“SetQaDistrictionName”的用法
在…之前做
@driver=Selenium::WebDriver.for:firefox
@基本url=”http://dmstaffing-stage.herokuapp.com/"
@接受下一个警报=真
@driver.manage.timeouts.implicit_wait=30
@验证_错误=[]
结束
在(:每个)之后做
#@司机,退出
@验证\u错误。应==[]
结束
它是“测试集、地区名称”吗
质量保证运行编号=“056”
结束
def元素_是否存在?(如何、什么)
@驱动程序。查找元素(如何、什么)
真的
rescue Selenium::WebDriver::错误::NoSuchElementError
假的
结束
def验证(&blk)
产量
救援预期NotMetError=>ex

@验证错误因此对于初学者,您可以这样做:-

require "selenium-webdriver"
require "rspec"
include RSpec::Expectations

describe "District" do

  before(:all) do
    @driver = Selenium::WebDriver.for :firefox
    @base_url = "http://dmstaffing-stage.herokuapp.com/"
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 30
    @verification_errors = []
    @driver.get "http://dmstaffing-stage.herokuapp.com/"
  end

  it "test_set_q_a_district_name" do
    QA_run_number = "056"
  end

  it "test_set_file_uploads_source_location" do
    ##something... Your tests
  end

  it "test_login_as_admin" do
    ##something... Your tests
  end

  after(:all) do
    @driver.quit
    @verification_errors.should == []
  end

  def element_present?(how, what)
    @driver.find_element(how, what)
    true
  rescue Selenium::WebDriver::Error::NoSuchElementError
    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()
    if (@accept_next_alert) then
      alert.accept()
    else
      alert.dismiss()
    end
    alert.text
  ensure
    @accept_next_alert = true
  end
end
需要“selenium webdriver”
需要“rspec”
包括RSpec::期望值
描述“地区”吗
在…之前做
@driver=Selenium::WebDriver.for:firefox
@基本url=”http://dmstaffing-stage.herokuapp.com/"
@接受下一个警报=真
@driver.manage.timeouts.implicit_wait=30
@验证_错误=[]
@驱动程序。获取“http://dmstaffing-stage.herokuapp.com/"
结束
它是“测试集、地区名称”吗
质量保证运行编号=“056”
结束
它“测试设置文件上传源位置”吗
##有些事。。。你的测试
结束
它“以管理员身份登录”进行测试
##有些事。。。你的测试
结束
在…之后做
@司机,退出
@验证\u错误。应==[]
结束
def元素_是否存在?(如何、什么)
@驱动程序。查找元素(如何、什么)
真的
rescue Selenium::WebDriver::错误::NoSuchElementError
假的
结束
def验证(&blk)
产量
救援预期NotMetError=>ex

@验证错误您还可以共享
*\u spec.rb
文件中的内容。例如
单位/set\u QA\u district\u name\u spec.rb“
乐意。添加到上面。