有没有办法在另一个ruby脚本a
中调用ruby脚本b
?我有一个ruby脚本执行网站登录(login.rb
)和另一个脚本order_create.rb
。我想先调用login.rb
,然后再执行order_create.rb
。请建议。
Order_Created.rb: -
@@order_data = YAML.load(File.open'C:\Users\order_details.yaml') def fill_order_form(order_data)
fill_in 'Firstname', :with => order_data['firstname']
fill_in 'Lastname', :with => order_data['lastname']
fill_in 'ZIP', :with => order_data['zip']
click_button 'Continue'
end
order_detail.yaml: -
firstname: "Order"
lastname: "Test"
zip: "90341"
login.rb: -
require './order_create.rb'
def login
#login code here
fill_order_form(@@order_data)
end
Error on running login.rb :- undefined method `fill_order_form' for #<#<Class:0x3e344e0>:0x4248ba0>
答案 0 :(得分:0)
类似(虽然不同)的问题已在以下问题得到解答:Running another ruby script from a ruby script
您可以在脚本中包含要调用的脚本:
require './b.rb' #if b.rb is in the same directory
并将其命名为:
b(args)
对于您的示例,您可以执行以下操作:
<强> login.rb 强>
require './order_create.rb'
def login
#login code here
order_create()
end
假设您的create_order.rb包含def create_order()
答案 1 :(得分:0)
即使您可以使用反引号或%x
执行任何shell命令`ruby yourscript.rb`
%x(ruby yourscript.rb)
在这种情况下,这不是一个好主意,因为你有传统方法来解决这个问题,创建第三个脚本,比如login_and_order.rb
并将以下代码放入其中:
require_relative 'login.rb'
require_relative 'order_create.rb'
# run your methods from both scripts in sequence you need
# or if they are just set of commands, nothing else needed