无法在Switch" - user-data-dir"中分配一个inst变量。在Selenium Wedriver Chrome中

时间:2015-06-08 21:21:24

标签: ruby google-chrome selenium selenium-webdriver selenium-chromedriver

我有以下代码,我想创建一个名为' 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

1 个答案:

答案 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]