2012-08-28 88 views
0

我試圖執行一個腳本來測試一些用戶憑據,並且我不斷收到有關'require'的錯誤。該腳本獲取csv用戶名和密碼,將它們記錄到站點中,並將它們分組到通過/失敗列表中。Ruby'需要'錯誤與Selenium webdriver腳本

我承認我沒有寫腳本 - 它是由外部編碼器提供給我們的。我已經採用了一些CS101類,並且可以解析它正在做什麼,並針對不同的域和憑證文件修改它,但我是一個全面的Ruby初學者。

=========================

require 'selenium-webdriver' 
require 'rubygems' 
require 'csv' 

pass_file = File.open('pass.txt', 'w') 
fail_file = File.open('fail.txt', 'w') 
in_file = File.open('test credentials.csv', 'r') 

pass_file.puts "xxxxxx" 
fail_file.puts "xxxxxx" 

CSV.foreach(in_file, :col_sep => ',') do |row| 
    driver = Selenium::WebDriver.for :firefox 
    driver.get 'https://www.xxxxxx.com/' 

    driver.find_element(:id => 'UserNameEntry').send_keys row[0] 
    driver.find_element(:id => 'UserPasswordEntry').send_keys row[1] 
    driver.find_element(:id => 'xxxxxxlNameEntry').clear 
    driver.find_element(:id => 'xxxxxxNameEntry').send_keys "xxxxxx" 
    driver.find_element(:xpath => '//*[@id="cmdLoginButton"]/span').click 
    driver.switch_to.window(driver.window_handles[1]) 
    if driver.title == "Welcome!" 
    pass_file.puts row[0] 
    elsif driver.title == "Login Unsuccessful" 
    fail_file.puts row[0] 
    end 
    driver.quit 
end 

============== ====

當我運行它,起初我是越來越「'需要':沒有這樣的文件來加載 - 硒的webdriver(LoadError) 從xxxxx.rb:1

然後我讀在一個論壇上,寶石的要求應該是第一個。在要求'selenium-webdriver'之前放入require'rubygems'後,現在我得到這個錯誤:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:308:in initialize': can't convert File into String (TypeError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:308:in open/ from /System/Library/Frameworks/Ruby.framework/Versions /1.8/usr/lib/ruby/1.8/csv.rb:308:in open_reader' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:94:in foreach'

我感覺很困惑...任何幫助表示讚賞。

回答

0

您需要先安裝寶石,然後才能要求寶石。例如,selenium-webdriver gem可以在這裏找到 Selenium WebDriver

您在終端程序中運行gem install selenium-webdriver

0

嘗試從CSV文件名稱中刪除空間,例如:

in_file = File.open('test_credentials.csv', 'r') 

,我可以從堆棧跟蹤看到,閱讀csv文件時出現錯誤。

0
  1. 如果test credentials.csv之間沒有空格,請將其刪除。檢查是否有_存在或不
  2. 如果test credentials.csv之間的空間,然後在你的代碼寫入文件名如下in_file = File.open("test\ credentials.csv", 'r')
0

如果使用捆紮機,在頂部加入require bundler/setup

0

請試試這個。

寶石更新 - 系統