2010-09-14 15 views
8

Znalazłem wiele tutoriali dla selenu w języku Java, w którym najpierw zaczynasz selen używając s.start("captureNetworkTraffic=True"), ale w pytonie start() nie przyjmuje żadnych argumentów.Selenium-rc: Jak używać CaptureNetworkTraffic w pytonie

Jak przekazać ten argument? A może nie potrzebujesz tego w pythonie?

Odpowiedz

5

Zmieniłem start w 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) 

The zrobić:

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

i działa jak czar

+1

Co to jest część "* firefox"? – maudulus

+0

Ale otrzymuję komunikat o błędzie "NameError: nazwa globalna" captureNetworkTraffic "nie jest zdefiniowana" – SIslam

+0

Czy ten kod dotyczy wyłącznie selenu 2.7.0? – SIslam

1

Uruchom przeglądarkę w "trybie wtrysku proxy" (notatka *pifirefox zamiast *firefox). Następnie możesz wywołać metodę 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')) 

poznałem "trick" *pifirefoxhere.

+0

Ale to działa metoda bez uruchamiania kierowcy „captureNetworkTraffic = true "? Czy w przeciwieństwie do Java itp. Ta metoda lub funkcja w Pythonie będzie "zawsze włączona"? – David

+0

@David: Zamiast 'captureNetworkTraffic = true', stwierdziłem, że muszę uruchomić przeglądarkę w trybie wtrysku proxy. (patrz wyżej) – unutbu

+0

Czy ten kod dotyczy wyłącznie selenu 2.7.0? – SIslam