remotewebdriver selenio con Python - registrazione delle prestazioni?

voti
4

Sto cercando di tornare un po 'di informazioni di registro di prestazione da un'istanza WebDriver remota. Sto utilizzando i binding Python selenio.

Da quello che posso vedere, si tratta di informazioni dovrei essere in grado di tornare. Penso che potrebbe essere disponibile solo con ChromeDriver. Attualmente sto usando Firefox, ma posso facilmente passare se ottiene le informazioni che voglio.

Tuttavia, Sono nuovo di Python (ma imparare!) E la documentazione intorno alle capacità dizionari (quando viene utilizzato per la registrazione delle prestazioni) per Python sembra essere un po 'limitata (o il mio google-fu è debole questa mattina).

Ho trovato la seguente:

DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(performance, Level.INFO);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
driver = new RemoteWebDriver(http://localhost:9515, caps);

Che sembra che dovrebbe fare quello che mi serve. Ma è Java. Io non sono del tutto sicuro di come mi piacerebbe andare sulla conversione di questo a Python. Supponendo che sia possibile.

Qualche idea?

È pubblicato 26/08/2014 alle 10:29
dall'utente
In altre lingue...                            


2 risposte

voti
4

Nel caso in cui qualcuno si sta chiedendo, questo sembra fare il trucco per me:

(Supponendo che si sta utilizzando il selenio remoto)

url = 'http://remote instance IP:PORT/wd/hub'
descaps = {'browserName': 'chrome', 'loggingPrefs': {'performance': 'INFO'}}

driver = webdriver.Remote(command_executor=url, desired_capabilities=descaps)

driver.command_executor._commands.update({'getAvailableLogTypes': 
                        ('GET', '/session/sessionId/log/types'), 
                        {'getLog': ('POST', '/session/$sessionId/log')})

getlog = driver.execute('getLog', {'type': 'performance'})['value']

(Dei due Aggiunto 'getAvailableLogTypes' comandi e 'getLog' - si vede solo la prima nel frammento di codice di cui sopra Quest'ultimo restituisce semplicemente un elenco dei tipi di registro disponibili sul sessione remota..)

Ora tutto quello che devo fare è interpretare ....

Risposto il 26/08/2014 a 13:41
fonte dall'utente

voti
0

Dopo aver suonato in giro con il registro Chromedriver per un po ', ho trovato una soluzione più compatta che funziona su browser diversi da Chrome.

Questo: https://pypi.python.org/pypi/seleniumwrapper

Che aggiunge un bel involucro intorno al Timing API di navigazione ( https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html ). Dà un insieme molto più compatto dei dati ed è molto più facile da interpretare e utilizzare.

Gli altri involucri mette turno di serie selenio sono in realtà molto bello!

Risposto il 29/08/2014 a 08:59
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more