我正在尝试执行一个脚本来测试一些用户凭据,并且我一直收到与'require'相关的错误。该脚本获取用户名和密码的csv,将它们记录到站点中,并将它们分组为通过/失败列表。
我承认我没有写剧本 - 它是由外部编码人员提供给我们的。我已经学了几个CS101课程,可以解析它正在做的事情,并为不同的域和凭据文件修改它,但我是一个完全红宝石的初学者。
=========================
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':没有这样的文件加载 - selenium-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'
来自/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 :(得分:0)
您需要在需要之前安装宝石。例如,selenium-webdriver gem可以在这里找到 Selenium WebDriver
您在终端计划中运行gem install selenium-webdriver
。
答案 1 :(得分:0)
尝试从csv文件名中删除空格,例如:
in_file = File.open('test_credentials.csv', 'r')
正如我从堆栈跟踪中看到的那样,读取csv文件时会发生错误。
答案 2 :(得分:0)
test credentials.csv
之间没有空格,则将其删除。检查是否存在_现在test credentials.csv
之间有空格,请在代码中写入文件名,如下所示in_file = File.open("test\ credentials.csv", 'r')
答案 3 :(得分:0)
如果您使用Bundler,请在顶部添加require bundler/setup
。
答案 4 :(得分:0)
请试一试。
gem update --system