Какой должна быть настройка драйвера для 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));
}