Zgodnie z dokumentacją selenu interakcje między klientem webdriver a przeglądarką odbywają się za pośrednictwem JSON Wire Protocol. Zasadniczo klient, napisany w python, ruby, java cokolwiek, wysyła komunikaty JSON do przeglądarki internetowej, a przeglądarka odpowiada również JSON.Monitorowanie protokołów protokołu drutu JSON
Czy istnieje sposób wyświetlania/przechwytywania/rejestrowania tych komunikatów JSON podczas uruchamiania testu selenu?
Na przykład (w Pythonie):
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://google.com')
driver.close()
Chcę zobaczyć, jakie wiadomości JSON idą między selen python webdriver klienta i przeglądarką kiedy instancję sterownika (w tym przypadku Chrome): webdriver.Chrome()
, kiedy otrzymuję stronę: driver.get('http://google.com')
i kiedy ją zamykam: driver.close()
.
FYI, w tutorialu #SFSE: Stripping Down Remote WebDriver, że odbywa się to poprzez przechwytywanie ruchu sieciowego pomiędzy maszyną lokalny gdzie skrypt jest uruchomiony i serwerem selenu zdalnego.
Podkreślam konkretne pytanie jako Python
, ale naprawdę byłbym zadowolony z wszelkich wskazówek.
Przeglądanie dokumentacji [dokumentacji Selenium Webdriver API] (http://selenium-python.readthedocs.org/api.html) nie wydaje się być żadnym dostępnym sposobem korzystania z biblioteki i udostępnianiem JSON-a generowanie/odbieranie. Prawdopodobnie chciałbym też pochylić się nad przechwytywaniem ruchu sieciowego. – ydaetskcoR
@ydaetskcoR dziękuję, właśnie o tym teraz myślę, choć nie jestem pewien, czy jest to wykonalne, jeśli zarówno klient, jak i aktualny sterownik znajdują się na lokalnym komputerze. Postanowili zapytać społeczność, czy są inne opcje. – alecxe
To prawdopodobnie niewłaściwe podejście, ale zawsze można wyłowić maszynę wirtualną i umieścić na niej serwer selenowy, aby można było przechwytywać ruch sieciowy przez wirtualną warstwę sieciową. – ydaetskcoR