如何在chrome web浏览器上使用ruby在selenium中添加修改标头的请求标头

时间:2016-09-29 12:08:25

标签: ruby google-chrome selenium mod-headers

我正在尝试使用ruby通过Selenium为chrome中的modHeaders添加请求标头。

我试过这段代码但没有运气。 Mod Header扩展已添加到浏览器,但无法向该扩展添加请求标头。

请帮我在代码中找到问题。

谢谢。

require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome, 
   :desired_capabilities =>Selenium::WebDriver::Remote::Capabilities.chrome({
        'chromeOptions' => {
            'extensions' => [Base64.strict_encode64(File.open('C:\Users\balinasr\Downloads\mod.crx', 'rb').read) ],
            'prefs'=> {
                'modifyheaders.headers.name'=>'aaa',
                'modifyheaders.headers.value'=>'bbb'
             }
         }
    })

1 个答案:

答案 0 :(得分:1)

我知道它不是您正在寻找的确切答案,但这是我使用的Java代码。经过一些谷歌搜索和研究,在浏览器的LocalStorage中设置值对我来说太难了:)。我所做的是创建一个配置了插件的Chrome用户,我在启动chromedriver时加载了该用户。

//to start the ChromeDriver with a plugin (from local.properties f.e.)
    if (System.getProperty(CHROME_USER_DATA_DIR) == null && chromeUserDataDir != null && !chromeUserDataDir
        .equalsIgnoreCase("@null")) {
        options.addArguments("user-data-dir="+chromeUserDataDir);
        if (System.getProperty(CHROME_EXTENSION1) == null && chromeExtension1 != null && !chromeExtension1
            .equalsIgnoreCase("@null")){
            options.addArguments("load-extension="+chromeUserDataDir+chromeExtension1);
        }
    }

参数是:

chrome.user.data.dir=C:/Users/[user]/AppData/Local/Google/Chrome SxS/User Data/Default/
chrome.user.extension1=Extensions/idgpnmonknjnojddfkpgkljpfnnfcklj/2.1.1_0/