2016-09-29 23 views
0

我正尝试通过Selenium使用红宝石为Chrome中的modHeaders添加请求标头。如何在Chrome浏览器中使用ruby在selenium中添加修改头的请求标头

我试过这段代码,但没有运气。 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

我知道这不是您正在寻找的确切答案,但是这是我使用的Java代码。经过一些Google搜索和研究,在浏览器的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/ 
+0

我真的不知道如何本地存储和报头是相关的,但在Ruby中,你有:'driver.session_storage'和'driver.local_storage'。在chrome中设置存储值非常简单,如'driver.local_storage ['foo1'] ='bar1'' – titusfortner