2016-09-29 5 views
0

Ich versuche, Anfrage Header für ModHeaders in Chrom durch Selen mit Ruby hinzufügen.Wie Hinzufügen Anforderungsheader für ändern Header in Selen mit Ruby auf Chrom Web-Browser

Ich habe diesen Code aber kein Glück versucht. Die Mod-Header-Erweiterung wurde dem Browser hinzugefügt, kann jedoch keine Anforderungsheader zu dieser Erweiterung hinzufügen.

Bitte helfen Sie mir, das Problem in meinem Code zu finden.

Vielen Dank.

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' 
      } 
     } 
    }) 

Antwort

1

Ich weiß, es ist nicht die genaue Antwort, die Sie suchen, aber das ist der Java-Code, den ich verwende. Nach einigem googeln und recherchieren war das Einstellen der Werte im LocalStorage des Browsers für mich zu schwierig :). Was ich getan habe, ist ein Chrome-Benutzer mit dem Plugin zu erstellen, das ich beim Starten des Chrometreibers geladen habe.

//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); 
     } 
    } 

Die Parameter sind:

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

ich ehrlich bin nicht sicher, wie die lokale Speicherung und Header verwandt sind, aber in Ruby Sie haben: 'driver.session_storage' und' driver.local_storage'. Das Festlegen eines Speicherwerts in Chrome ist so einfach wie 'driver.local_storage ['foo1'] = 'bar1'' – titusfortner

Verwandte Themen