当我在 ruby 文件中硬编码一个 URL 以便 Selenium 执行时,我有一个测试正在工作,但是我需要对多个具有不同子域的 URL 运行相同的测试
当我运行以下命令时,我收到一个错误,指出 split 是一种未知方法
require 'rubygems'
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
pageLoad = sleep 1
subD = ARGV.split(",")
instances = []
subD.each do |test|
instances << test
end
instances.each do |cub|
url = 'http://' + sub + '.test.com'
driver.get url
puts "#{url}"
begin
driver.find_element(:id, 'user_login').send_keys 'user 1'
driver.find_element(:id, 'user_password').send_keys 'password1'
driver.find_element(:id, 'login_button').click
puts 'Logging In'
rescue StandardError
puts 'Unable to login'
end
pageLoad
puts 'Test Complete'
sleep 5
end
driver.quit
这是错误
test.rb:8:in `<main>': undefined method `split' for ["test1,test2,test3"]:Array (NoMethodError)
正在输入
ruby test.rb test1,test2,test3
最佳答案
ARGV 是一个数组而不是字符串,您要么需要单独传递每个子域,然后迭代 ARGV,要么使用 ARGV[0]
访问 ARGV 的第一个成员
关于ruby - 对具有不同子域的多个网站运行 selenium 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73376741/