Ruby on rails 3.2 导出和导入功能的watir测试
我的webapp中有一个导出和导入功能,我想使用watir测试导出到xls和从xls导入功能。请问有谁能给我提供这个想法吗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
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