无法在 Selenium Webdriver Chrome 的开关“--user-data-dir”中分配 int 变量

Cannot assign an inst variable in Switch "--user-data-dir" in Selenium Wedriver Chrome

我有以下代码,我想创建一个名为 'mydir' 的用户目录,其中 chrome 应该输出控制台日志,但是碰巧它创建了一个目录 #{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

%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]