我有以下代码,我想创建一个名为' mydir'的用户目录。 chrome应该输出控制台日志,但是wat会发生,它会创建一个目录#{dir}。我也试过使用CONST变量仍然是相同的结果。有人能帮助我吗?
require "selenium-webdriver"
class MyClass
dir='mydir'
@driver = Selenium::WebDriver.for :chrome, :switches => %w[--ignore-certificate-errors --user-data-dir=#{dir} --enable-logging]
end
答案 0 :(得分:1)
%w
字面值类似于使用字符串的单引号。没有插值。因此,--user-data-dir
正是键入的内容 - “#{dir}”。要启用插值,您需要使用大写W - 即%W
:
你可以看到与以下区别:
dir = 'mydir'
# Without interpolation
p %w[--user-data-dir=#{dir}]
#=> ["--user-data-dir=\#{dir}"]
# With interpolation
p %W[--user-data-dir=#{dir}]
#=> ["--user-data-dir=mydir"]
最后,您的脚本将变为:
require "selenium-webdriver"
class MyClass
dir='mydir'
@driver = Selenium::WebDriver.for :chrome, :switches => %W[--ignore-certificate-errors --user-data-dir=#{dir} --enable-logging]