【发布时间】:2012-08-02 17:53:21
【问题描述】:
我有以下 ruby 脚本:
require "rubygems"
require "rest-client" #although not required in the program
require "open-uri"
require "nokogiri"
puts "Opening file"
page=File.open("file.html","r"){|file| file.read}
puts page
page = Nokogiri::HTML(page)
puts page.class
#Filters content of page to select all references to the documents filing date
td_rows = page.css('td i.blue')
puts td_rows
我可以从 CodeRunner 或 TextWrangler 运行此脚本,并使用 ruby 'filename' 从终端调用它。但是,我试图让脚本在某个时间点运行,并尝试使用 Keyboard Maestro 或 Platypus 调用脚本,但尽管它运行它似乎并没有完成该行
td_rows = page.css('td i.blue')
变量 td_rows 不包含任何内容。有谁知道为什么这不起作用?
非常感谢
【问题讨论】:
-
您能否更清楚地了解它是如何不工作的?它从终端运行正常吗?脚本根本没有运行还是只是“td_rows = page.css('td i.blue') 行不起作用?从终端运行时是否有任何错误?
-
当您的工具调用时,您确定它与 file.html 在同一目录中运行吗?
-
它可以从终端完美运行,但是,如果我通过键盘大师或鸭嘴兽运行它,脚本会执行它的 puts,“page”变量是一个 nokogiri 元素,但它不会更新变量 td_rows . ruby 脚本与 HTML 文件不在同一目录中,但它可以从终端运行它,所以我希望它在从键盘大师调用时运行。
-
运行代码后,不是从终端,而是从 Keyboard Maestro 或 Platypus,你看到
puts page语句的输出了吗? -
是的,当从 Platypus 或 KM 运行时,puts 页面确实会显示输出