0

ユーザー資格情報をテストするスクリプトを実行しようとしていますが、'require' に関するエラーが発生し続けます。このスクリプトは、ユーザー名とパスワードの csv を取得し、サイトにログインして、合格/不合格リストにグループ化します。

スクリプトは私が書いたものではありません。外部のコーダーから提供されたものです。私はいくつかの 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

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

実行すると、最初は「require」: no such file to load -- selenium-webdriver (LoadError) from xxxxx.rb:1 というメッセージが表示されました

次に、宝石の要件が最初に来る必要があることをフォーラムで読みました。require '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:inopen' 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:inforeach'

私はとても混乱しています...助けていただければ幸いです。

4

5 に答える 5

0

gem を要求する前に、gem をインストールする必要があります。たとえば、selenium-webdriver gem はここにあります Selenium WebDriver

gem install selenium-webdriver端末プログラムで実行します。

于 2012-08-28T18:57:56.490 に答える
0

次のように、csv ファイル名からスペースを削除してみてください。

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

スタックトレースからわかるように、csv ファイルの読み取り時にエラーが発生します。

于 2012-08-31T16:38:53.520 に答える
0

Bundler を使用する場合require bundler/setupは、先頭に追加します。

于 2015-02-18T01:09:24.750 に答える