2013-03-08 12 views
5

Zacząłem grać z Seleniumbrary (testy z robotem ramowym) i ponieważ nasze strony mają reklamy i dane, i tak dalej, za każdym razem, gdy uruchamiam test, ładowane są te adresy URL.Jak wyłączyć ładowanie zewnętrznych adresów URL na selenumbrary/robotframework

Czy istnieje sposób na powiedzenie selenowi/robotframework, aby nie ładowało określonych typów adresów URL lub aby nie ładowało zasobów zewnętrznych (tj. Wszystkiego, co nie pochodzi z localhost).

Odpowiedz

8

Możesz to zrobić z browsermob-proxy. Gdy już to zainstalujesz, wystarczy skonfigurować serwer proxy i ustawić czarną listę.

ProxyServer server = new ProxyServer(9000) 
server.start(); 
final DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(CapabilityType.PROXY, server.seleniumProxy()); 
//Send a 200 for all requests to the facebook cdn 
server.blacklistRequests("http://.*\\.fbcdn.net/.*", 200); 
//Finish setting up your driver 
WebDriver driver = new SomeDriverImpl(capabilities); 

wierzę dodaje będzie współpracować z this python wrapper (regex może się nieznacznie różnić):

from browsermobproxy import Server 
server = Server("path/to/browsermob-proxy") 
server.start() 
proxy = server.create_proxy() 
proxy.blacklist('http://.*\\.fbcdn.net/.*', 200) 
from selenium import webdriver 
profile = webdriver.FirefoxProfile() 
profile.set_proxy(proxy.selenium_proxy()) 
driver = webdriver.Firefox(firefox_profile=profile) 
... 
proxy.stop() 
driver.quit() 
+0

Nie stwierdzić, język, którego używali, więc zakłada Java. Czy to nie jest poprawne? Szybkie wyszukiwanie pokazuje, że istnieje wiele wrapperów dla tej biblioteki dla Pythona. – Scott

+0

Przepraszam, tak, używam Pythona. Dzięki za odpowiedź, oznaczenie będzie tak samo ważne, jak tylko będę mógł to wypróbować! – gforcada

+1

Nie powinieneś unikać kropki w fbcdn.net, na przykład: 'server.blacklistRequests (" https?: //.* \\ .fbcdn \\ .net /.* ", 200);' – Lordalcol

Powiązane problemy