Selenium Webdriver脚本的Ruby'require'错误 [英] Ruby 'require' errors with Selenium webdriver script
问题描述
我正在尝试执行脚本来测试一些用户凭据,并且不断收到与"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: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'
我感到非常困惑...任何帮助表示赞赏.
I'm feeling so confused...any help appreciated.
推荐答案
请尝试此操作.
gem更新--system
gem update --system
这篇关于Selenium Webdriver脚本的Ruby'require'错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!