Как установить заголовки на Selen Webdriver (каждый запрос может использовать разные заголовки) в java - PullRequest
0 голосов
/ 24 марта 2020

Я использую проект Maven:

    <dependency>
        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-core</artifactId>
        <version>2.1.5</version>
    </dependency>

Я хочу go - html сайт с другим пользователем (по заголовкам).

пример:

  • 1: получить домашнюю страницу с заголовком user: foo
  • 2: получить домашнюю страницу с заголовком user: bar
  • 3: получить домашнюю страницу с заголовком user: goo

Я пытаюсь использовать этот код, но мой chrome открыт только с белой страницей:

Вот мой код

    import org.junit.After;
    import org.junit.Assert;
    import org.junit.Before;
    import org.junit.Test;
    import org.openqa.selenium.By;
    import org.openqa.selenium.Proxy;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.CapabilityType;

    import net.lightbody.bmp.BrowserMobProxy;
    import net.lightbody.bmp.BrowserMobProxyServer;
    import net.lightbody.bmp.client.ClientUtil;

    public class Sof {

        WebDriver driver;

        @Before
        public void setUp() {

            // start the proxy
            BrowserMobProxy proxy = new BrowserMobProxyServer();

            // put our custom header to each request
            proxy.addRequestFilter((request, contents, messageInfo) -> {
                request.headers().add("my-test-header", "my-test-value");
                System.out.println("addRequestFilter: " + request.headers().entries().toString());
                return null;
            });

            proxy.start();

            // get the Selenium proxy object
            Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);

            // Setting up Proxy for chrome
            ChromeOptions opts = new ChromeOptions();
            opts.setCapability(CapabilityType.PROXY, seleniumProxy);
            System.setProperty("webdriver.chrome.driver", "robot\\src\\test\\resources\\drivers\\windows\\googlechrome\\64bit\\chromedriver.exe");
            driver = new ChromeDriver(opts);
        }

        @Test
        public void testProxifying() {
            driver.get("https://noraui.github.io/demo/logogame/v1/");
            Assert.assertEquals(driver.findElement(By.xpath("//body")).getText(), "{\"SUCCESS\"}");
        }

        @After
        public void tearDown() {
            if (driver != null) {
                driver.quit();
                System.out.println("Driver was instantiated. Quitting..");
            } else {
                System.out.println("Driver was null so nothing to do");
            }
        }

    }

Мой результат: enter image description here

...