Ruby 鞋子执行另一个 ruby 程序

Ruby Shoes execute another ruby program

我有一个小鞋子 (3.3.3) 程序和一个带有 selenium (3.4.4) 的小 ruby 控制台程序。 如果我直接打开 selenium 控制台程序,一切正常,但如果我想通过 "exec("")" 通过鞋子打开它,它会中断并关闭。

我认为错误是 webdriver,所以我写了一个简单的控制台程序,带有一些简单的 "puts" 输出,shoes 显示了控制台和输出。

问题是...昨天 selenium 程序运行正常,但我找不到问题,为什么现在找不到了。

简化的鞋子代码如下所示:

Shoes.app(width: 200, height: 200, resizable: false){
    button("GO", width: 200) do
        exec('ruby data/test.rb')
    end 
}

这是简单的 selenium-webdriver 代码,名为 "test.rb":

require 'selenium-webdriver'

Selenium::WebDriver::PhantomJS.driver_path = 
"driver/phantomjs/bin/phantomjs.exe"
browser = Selenium::WebDriver.for :phantomjs
wait = Selenium::WebDriver::Wait.new(:timeout => 15)

browser.navigate.to 
"http://www.accuweather.com/de/de/heinsberg/52525/weather-forecast/174475"

wetterElement = browser.find_element(:id, "wrap-forecast-feed")
@wetterData = wetterElement.text.gsub(/\n/, ',').split(",")
puts @wetterData[1]

gets.chomp

Shoes 在它坏掉之前的几毫秒内给我以下错误消息:

所以我查了一下,发现了这个代码片段:

  def assert_file(path)
    return if File.file? path
    raise Error::WebDriverError, "not a file: #{path.inspect}"
  end

  def assert_executable(path)
    assert_file(path)

    return if File.executable? path
    raise Error::WebDriverError, "not executable: #{path.inspect}"
  end

我真的不知道... 提前谢谢你。

知道了... 鞋子应用程序的文件夹是 UTF-8 格式的。只需更改名称即可。