【问题标题】:Cannot assign an inst variable in Switch "--user-data-dir" in Selenium Wedriver Chrome无法在 Selenium Webdriver Chrome 中的 Switch“--user-data-dir”中分配 int 变量
【发布时间】:2015-08-23 12:29:46
【问题描述】:

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

【问题讨论】:

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


    【解决方案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]
    

    【讨论】:

    • 感谢您的帮助! :)
    猜你喜欢
    • 2018-11-11
    • 2017-06-15
    • 2017-08-12
    • 1970-01-01
    • 2019-01-28
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多