2010-09-14 2 views
8

Ho trovato molti tutorial per il selenio in java in cui si avvia il selenio per la prima volta usando s.start("captureNetworkTraffic=True"), ma in python start() non accetta alcun argomento.Selenium-rc: Come usi CaptureNetworkTraffic in python

Come si passa questo argomento? O non ne hai bisogno in Python?

risposta

5

ho cambiato il start in selenium.py:

def start(self, captureNetworkTraffic=False): 
    l = [self.browserStartCommand, self.browserURL, self.extensionJs] 
    if captureNetworkTraffic: 
     l.append("captureNetworkTraffic=true") 
    result = self.get_string("getNewBrowserSession", l) 

Il fate:

sel = selenium.selenium('localhost', 4444, '*firefox', 'http://www.google.com') 
sel.start(True) 
sel.open('') 
print sel.captureNetworkTraffic('json') 

e funziona come un fascino

+1

Qual è la parte '* firefox'? – maudulus

+0

Ma sto ricevendo errore 'NameError: nome globale 'captureNetworkTraffic' non è definito' – SIslam

+0

Questo codice è solo per selenio 2.7.0? – SIslam

1

Avviare il browser in "modalità di iniezione proxy" (nota *pifirefox anziché *firefox). Quindi è possibile chiamare il metodo captureNetworkTraffic.

import selenium 
import time 

sel=selenium.selenium("localhost",4444,"*pifirefox","http://www.google.com/webhp") 
sel.start() 
time.sleep(1) 
print(sel.captureNetworkTraffic('json')) 

ho imparato il "trucco" here*pifirefox.

+0

Ma questo metodo di lavoro senza avviare il conducente con "captureNetworkTraffic = true "? Significato a differenza di Java, ecc. Questo metodo o funzione in Python sarà "sempre attivo"? – David

+0

@David: invece di 'captureNetworkTraffic = true', ho trovato che avevo bisogno di avviare il browser in modalità di iniezione proxy. (vedi sopra) – unutbu

+0

Questo codice è solo per il selenio 2.7.0? – SIslam