Selenium Webdriver脚本的Ruby'require'错误 [英] Ruby 'require' errors with Selenium webdriver script

查看:129
本文介绍了Selenium Webdriver脚本的Ruby'require'错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行脚本来测试一些用户凭据,并且不断收到与"require"有关的错误.该脚本使用一个用户名和密码的csv,将它们登录到站点中,并将它们分组为通过/失败列表.

I'm trying to execute a script to test some user credentials, and I keep getting errors relating to 'require'. The script takes a csv of usernames and passwords, logs them into a site, and groups them into pass/fail lists.

我承认我没有编写脚本-它是由外部编码器提供给我们的.我学习了一些CS101类,可以解析它的作用并针对不同的域和凭据文件对其进行修改,但是我是一个完全的红宝石初学者.

I confess I didn't write the script- it was provided to us by an outside coder. I've taken a few CS101 classes, and can parse what it's doing and modify it for different domains and credential files, but I'm a total ruby beginner.

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

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

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

When I run it, at first I was getting "`require': no such file to load -- selenium-webdriver (LoadError) from xxxxx.rb:1

然后,我在一个论坛上阅读了对宝石的要求应该放在首位.在将require'rubygems'放置在require'selenium-webdriver'之后,现在出现此错误:

Then I read on a forum that the requirement for gems should come first. After putting require 'rubygems' before require 'selenium-webdriver', now I get this error:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:308:在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中打开 来自/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:308:在open_reader' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/csv.rb:94:in foreach'

/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'

我感到非常困惑...任何帮助表示赞赏.

I'm feeling so confused...any help appreciated.

推荐答案

请尝试此操作.

gem更新--system

gem update --system

这篇关于Selenium Webdriver脚本的Ruby'require'错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆