С решениями, уже обсужденными выше, наиболее надежным является использование Browsermob-Proxy
Но при работе с удаленной сетевой машиной Browsermob-proxy не очень помогает.
Вот как я решил проблему в моем случае. Надеюсь, может быть полезно для тех, у кого аналогичная настройка.
- Добавьте расширение ModHeader в браузер Chrome.
Как скачать модхедер? Ссылка на сайт
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File(C://Downloads//modheader//modheader.crx));
// Set the Desired capabilities
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
// Instantiate the chrome driver with capabilities
WebDriver driver = new RemoteWebDriver(new URL(YOUR_HUB_URL), options);
- Перейдите к расширениям браузера и запишите идентификатор контекста локального хранилища ModHeader.
![Захват идентификатора из ModHeader](https://i.stack.imgur.com/WV5yi.png)
- Перейдите к URL-адресу ModHeader, чтобы установить контекст локального хранилища.
.
// set the context on the extension so the localStorage can be accessed
driver.get("chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/_generated_background_page.html");
Where `idgpnmonknjnojddfkpgkljpfnnfcklj` is the value captured from the Step# 2
- Теперь добавьте заголовки к запросу, используя
Javascript
.
((Javascript)driver).executeScript(
"localStorage.setItem('profiles', JSON.stringify([{ title: 'Selenium', hideComment: true, appendMode: '',
headers: [
{enabled: true, name: 'token-1', value: 'value-1', comment: ''},
{enabled: true, name: 'token-2', value: 'value-2', comment: ''}
],
respHeaders: [],
filters: []
}]));");
Где token-1
, value-1
, token-2
, value-2
— заголовки запроса и значения, которые необходимо добавить.
Теперь перейдите к нужному веб-приложению.
driver.get("your-desired-website");
person
Praveen
schedule
17.06.2020