Вопрос по selenium-webdriver, robotframework – Как отключить загрузку внешних URL-адресов на seleniumlibrary / robotframework

5

Я начал играть с тестами Seleniumlibrary (с роботизированной рамкой), и поскольку на наших сайтах есть реклама, метрики и т. Д., Каждый раз, когда я запускаю тест, эти URL-адреса загружаются.

Есть ли способ сообщить селену / роботу, чтобы он не загружал определенные типы URL-адресов или предотвращал загрузку внешних ресурсов (т. Е. Всего, что не с localhost).

Ваш Ответ

1   ответ
8

Вы можете сделать это сbrowsermob-прокси, После того, как вы это установили, вы просто настраиваете прокси и устанавливаете черный список.

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);

Я считаю, что следующее будет работать сэта обертка питона (регулярное выражение может немного отличаться):

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()
Вы не должны избегать точки в fbcdn.net, например:server.blacklistRequests("https?://.*\\.fbcdn\\.net/.*", 200); Lordalcol
Вы не указали, какой язык вы используете, поэтому я предположил Java. Это не правильно? Быстрый поиск показывает, что для этой библиотеки есть много оболочек для python. Scott
Извините, да, я использую Python. Спасибо за ответ, отметим как действительный, как только я успел попробовать! gforcada

Похожие вопросы