8

Utilizzo Selenium WebDriver per testare un'estensione Google Chrome che sto sviluppando. Ho notato che è possibile personalizzare ChromeDriver per aggiungere estensioni all'istanza di Chrome che viene avviata. Ciò può essere ottenuto utilizzando i metodi AddExtension e AddExtensions della classe ChromeOptions.Come posso avviare Chrome con un'estensione decompressa?

La documentazione di questi metodi indica che richiedono estensioni da fornire come file CRX. Dal Sono sviluppando l'estensione, non ho un file crx. Vorrei poter caricare l'estensione decompressa, ma non sono riuscito a trovare un metodo per farlo.

Ho provato a mettere i file di estensione in un file zip e specificando questo per il metodo AddExtension, ma ciò ha causato un'eccezione poiché non era un file crx. Ho anche provato a passare nella directory contenente i file decompressi, ma questo ha prodotto un FileNotFoundException.

Come posso fare questo?

+1

Non ho idea di cosa significhi tutto questo, ma ho aumentato la tua risposta, perché sembra davvero un'informazione utile. –

risposta

13

Sono riuscito a ottenere ciò utilizzando il metodo AddArgument per passare direttamente le informazioni a Chrome. Ecco come si presenta in C#:

options = new ChromeOptions(); 
options.AddArgument("--load-extension=" + unpackedExtensionPath); 
-1

La documentazione selenio ha un esempio come questo per un sacco (non scompattato) estensione:

capabilities.setCapability("platform", "Windows 8"); 
capabilities.setCapability("version", "10"); 
capabilities.setCapability("name", testname); 
capabilities.setCapability("screen-resolution", "1280x1024"); 
ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
if (isLocal) driver = new ChromeDriver(capabilities); 
+1

'addExtensions' sembra richiedere un file * crx *, che rappresenta un'estensione * compressa * piuttosto che una non compressa. – Sam

1

Per gli interni confezionati (un file .crx)

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

Per le estensioni non imballati (una cartella)

ChromeOptions options = new ChromeOptions(); 
options.addArguments("load-extension=/path/to/extension"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

source

+0

La seconda opzione funzionerebbe solo per il selenio locale poiché '/ path/to/extension' non sarebbe disponibile in remoto. – Vladimir

1

L'errore estensione spacchettato spuntato per me e io richiesto per la rimozione delle restrizioni in cromo, che è stata fatta osservare come politica organizzativa. Una volta rimosse le restrizioni, sono in grado di eseguire il programma senza errori. ChromeBrowser-GPO-Deny: questo è stato rimosso. Puoi effettuare il check in Impostazioni - Estensioni - Controlla la modalità sviluppatore e vedere se il caricamento delle estensioni decompresse viene controllato una volta rimosse le restrizioni. Dovresti essere buono allora. Tutto quanto sopra funzionerà solo quando il cromo non è limitato.

Problemi correlati