Какой должна быть настройка драйвера для AbstractTest, чтобы использовать Chrome без головы для TestBench в Vaadin Flow

В примере кода для начала работы в TestBenchдрайвер настраивается в методе: https://vaadin.com/docs/latest/tools/testbench/getting-started Однако в конце до конца тестового примера драйвер настраивается в setupClass()метод: . Основная причина, по которой я спрашиваю, заключается в том, что я хочу настроить ChromeDriver так, чтобы он был безголовым, и единственный способ, которым я вижу это сделать с помощью setDriver()в методе setup(). Но это означает, что я не знаю, как вызвать код примера, поскольку у меня нет экземпляра WebDriverManager...

Есть ли какая-то причина, по которой они настроены по-разному, или это скорее проблема, которая на самом деле не имеет значения?

Мой код:

      @Before
public void setup() throws Exception {
    super.setup();
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--headless", "--disable-gpu");
    setDriver(new ChromeDriver(options));
    getDriver().get(getURL(route));
}

Мой главный вопрос заключается в том, правильно ли это или нет, и столкнусь ли я с какими-либо проблемами, если не запущу WebDriverManager.chromedriver().setup()? Например, я не знаю, что именно делает этот метод установки.

Или еще лучше, как мне настроить AbstractTestкласс на https://vaadin.com/docs/latest/flow/tutorial/e2e-testing-with-testbenchhttps://vaadin.com/docs/latest/flow/tutorial/e2e-testing-with-testbench , чтобы он мог запускать Chrome без головы, потому что приведенный выше код не работает (поскольку, по-видимому, некоторые системные свойства, которые не были настроены, что, скорее всего, было сделано в setup()метод).

ОБНОВЛЕНИЕ -> Мое текущее решение состоит в том, чтобы использовать следующее, но оно имеет некоторые ограничения. В частности, он предполагает Chrome (с которым я согласен). Во-вторых, рекомендуемое условие, которое я нашел, всегда возвращает true, поэтому на данный момент я закомментировал это условие. Любые подробности о том, почему это не работает, будут оценены.

          public void setup() throws Exception {
//        if (BrowserUtil.isChrome(getDesiredCapabilities()) && (getRunLocallyBrowser() != null)) {
            ChromeOptions options= new ChromeOptions();
            options.setHeadless(true);
            setDriver(new ChromeDriver(options));
//        } else {
//            super.setup();
//        }
        getDriver().get(getURL(route));
    }

0 ответов

Другие вопросы по тегам