Вот как я объявляю драйвер FireFox:Как объявить драйвер глобальным?
public static WebDriver driver = new FirefoxDriver();
Я разместить код, указанный выше за пределами основной и в моем классе (глобальный)
Вот как я объявляю драйвер хром:
System.setProperty("webdriver.chrome.driver", "/path/xxx/xxx/xx");
WebDriver driver = new ChromeDriver();
Я размещаю код, указанный выше, в главном
Вот проблема:
Я хочу, чтобы ChromeDriver был глобальным, но I NEED, чтобы установить свойство до. Но я помещаю System.setProperty("xx","xx");
в основной корпус. Потому что он дает ошибку при размещении снаружи.
Здесь пользователь пытается сделать то же самое, что и я. Попытка запускать разные браузеры с использованием одного и того же драйвера: How to run Selenium tests in multiple browsers for cross-browser testing using Java?
Ответ заключается в объявлении драйвера в основном корпусе, а не в качестве константы раньше.
Моя проблема: Все функции требуют объявления водителя раньше. Функции вызова, которые используют driver
. Если я объявляю в основном, мне нужно постоянно передавать его как параметр ко всем функциям. Я не хочу этого делать. Ниже приведен пример функции
public static void a(){
driver.findElement(By.id("hi"));
}
Зачем вам нужно, чтобы сделать его глобальным, в первую очередь? – t0mppa
Поскольку все функции зависят от него. У них у всех есть «водитель». Они ВСЕ будут полностью разорваться, если я не сделаю это глобальным. – Indigo
Вы можете всегда передавать его различным классам в своих конструкторах и использовать его как переменную класса. В любом случае, Java не поддерживает глобальные переменные, переменная всегда находится в области действия какого-либо класса или метода. – t0mppa