Я использую RobotFramework с библиотекой Selenium для написания автоматизированных тестов для различных веб-сайтов.Я столкнулся с проблемой, когда из-за медленной загрузки сторонних URL-адресов некоторые страницы загружаются вечно, и я хочу заблокировать их, чтобы ускорить выполнение теста.
Однако я застрял на реализации этого решения через BrowserMob в Robot Framework.Кто-нибудь может помочь?
Пока у меня есть этот код:
Start Browser
## Init BrowserMob Proxy
${BMPATH} Join Path ${EXECDIR} browsermob-proxy-2.1.4 bin browsermob-proxy.bat
&{bmphost} Create Dictionary address=127.0.0.1 port=7070
Start Local Server ${BMPATH}
# Create dedicated proxy on BrowserMob Proxy
&{host} Create Dictionary address=127.0.0.1 port=7070
${BrowserMob_Proxy}= Create Proxy ${host}
#Blacklist URLS
Blacklist https://.*\\.google.com/.* 404
## Configure Webdriver to use BrowserMob Proxy
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${options} add_argument --proxy\=127.0.0.1:7070
#${proxy1}= Evaluate sys.modules['selenium.webdriver'].Proxy() sys, selenium.webdriver
#${proxy1.http_proxy}= Set Variable localhost:8888
Create WebDriver Chrome chrome_options=${options} #proxy=${BrowserMob_Proxy}
Go to https://www.google.com
Цель состояла в том, чтобы перевести этот код селена / Java:
private WebDriver initializeDriver() throws Exception {
// Start the server and get the selenium proxy object
ProxyServer server = new ProxyServer(proxy_port); // package net.lightbody.bmp.proxy
server.start();
server.setCaptureHeaders(true);
// Blacklist google analytics
server.blacklistRequests("https?://.*\\.google-analytics\\.com/.*", 410);
// Or whitelist what you need
server.whitelistRequests("https?://*.*.yoursite.com/.*. https://*.*.someOtherYourSite.*".split(","), 200);
Proxy proxy = server.seleniumProxy(); // Proxy is package org.openqa.selenium.Proxy
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// start the driver ;
Webdriver driver = new FirefoxDriver(capabilities);
return driver;
Код, который у меня есть, создает сервер, прокси-сервер и открывает браузер Chrome, но не может внести черный список в google.com и в любом случае открывает страницу.Перепробовал несколько выражений регулярных выражений, все не удалось, но я думаю, что ошибка была сделана где-то до этого, либо в способе создания прокси / сервера или в черный список URL-адреса не правильно.
Кто-нибудь имел успех в реализацииэто решение в РФ?Может кто-нибудь сказать мне, что мне не хватает?
Спасибо