Ruby on rails 3.2 导出和导入功能的watir测试

Ruby on rails 3.2 导出和导入功能的watir测试,ruby-on-rails-3.2,automated-tests,integration-testing,watir,watir-webdriver,Ruby On Rails 3.2,Automated Tests,Integration Testing,Watir,Watir Webdriver,我的webapp中有一个导出和导入功能,我想使用watir测试导出到xls和从xls导入功能。请问有谁能给我提供这个想法吗 class TestBasicExport < MiniTest::Unit::TestCase def setup login_page = @@site.login_page.open # open the page to login search_page = login_page.login # login and land on the sea

我的webapp中有一个导出和导入功能,我想使用watir测试导出到xls和从xls导入功能。请问有谁能给我提供这个想法吗

class TestBasicExport < MiniTest::Unit::TestCase
 def setup
   login_page = @@site.login_page.open # open the page to login
   search_page = login_page.login # login and land on the search page
   @@export_page = search_page.export  # click on the export link to goto export page
 end

 def test_basic_export_works
   export = @@export_page.export # it will click on the exprt button
   assert @@export_page.loaded?, "Export page failed to load"

 rescue Watir::Exception, Watir::Wait::TimeoutError => e
   puts "Some field not found: #{e}"
   assert(false, "Current page is " + @@export_page.browser.url)
 end
end
请问,我能做些什么来完成这个


谢谢

我的问题解决方案是:

class TestBasicExport < MiniTest::Unit::TestCase
  def setup
    login_page = @@site.login_page.open # open the page to login
    search_page = login_page.login # login and land on the search page
    @@export_page = search_page.export
    assert @@export_page.loaded?, "Export page failed to load!"

    # find number of export.xls file before downloading and save it in 
    # some variable
    if @@export_page.count_export_file == 1
      @@export_page.remove_export_file
    end
    # delete export file if already exists and confirm it
    @number_of_files = @@export_page.count_export_file
    assert_equal(0, @number_of_files, "Export file already exists")

    @@site.download_directory_setup

    @@export_page.export
    assert @@export_page.completed?, "Export failed!"
  end

  def test_basic_export_works
    # verify file is downloaded
    assert_equal(1, @@export_page.count_export_file, "Export did not happened")

    # check for downloaded file is having valid rows
    assert_equal(true, @@export_page.verify_headers? , "Downloaded file in invalid")

    assert_equal(true, @@export_page.verify_download?, "Excel file is not having all datas")
  rescue Watir::Exception, Watir::Wait::TimeoutError => e
    puts "Some field not found: #{e}"
    assert(false, "Current page is " + @@export_page.browser.url)
  end
end

那么,您是否期望它需要“很长”的时间(比如几分钟)?如果是这样,也许您应该在代码中添加一个“服务员”。导入/导出完成后,等待元素出现或消失。你试过了吗?是的,我为导出后的另一个事件添加了
等待,直到出现
,现在它正在工作。感谢您将问题的答案包含在这里,然后接受它,这样您的问题就不会再出现在搜索未回答的问题时。哦,是的。。对不起。我会发布一个答案
class TestBasicExport < MiniTest::Unit::TestCase
  def setup
    login_page = @@site.login_page.open # open the page to login
    search_page = login_page.login # login and land on the search page
    @@export_page = search_page.export
    assert @@export_page.loaded?, "Export page failed to load!"

    # find number of export.xls file before downloading and save it in 
    # some variable
    if @@export_page.count_export_file == 1
      @@export_page.remove_export_file
    end
    # delete export file if already exists and confirm it
    @number_of_files = @@export_page.count_export_file
    assert_equal(0, @number_of_files, "Export file already exists")

    @@site.download_directory_setup

    @@export_page.export
    assert @@export_page.completed?, "Export failed!"
  end

  def test_basic_export_works
    # verify file is downloaded
    assert_equal(1, @@export_page.count_export_file, "Export did not happened")

    # check for downloaded file is having valid rows
    assert_equal(true, @@export_page.verify_headers? , "Downloaded file in invalid")

    assert_equal(true, @@export_page.verify_download?, "Excel file is not having all datas")
  rescue Watir::Exception, Watir::Wait::TimeoutError => e
    puts "Some field not found: #{e}"
    assert(false, "Current page is " + @@export_page.browser.url)
  end
end
# this method will count the number of export.xls file in project directory
def count_export_file
  Dir[File.join("#{file_path}/", 'export.xls')].count { |file| File.file?(file) }
end

# method for removing file from project directory
def remove_export_file
   File.delete("#{file_path}/" + 'export.xls')  
end