Лишние окна при загрузке классов и правильная инициализация классов

Теги: #<Tag:0x00007f73975c79e0> #<Tag:0x00007f73975c7878> #<Tag:0x00007f73975c77b0> #<Tag:0x00007f73975c7670> #<Tag:0x00007f73975c7580> #<Tag:0x00007f73975c71c0>

задача: сделать так, чтобы заходить в систему под своим логином-паролем, находить там данные и редактировать их.

Создала 3 класса:

  1. Основной
  2. Поиск
    Проблема в том, что при реализации класса поиск открывается лишнее пустое окно браузера хром и система начинает искать уже в нем (пустом окне), а там, естественно, нужных элементов нет. Я понимаю, что проблема в том, что в классе поиск я инициазирую хромдрайвер, но есло я его оттуда убираю, то все мои xpath краснеют.
    Есть возможность это обойти? Ошибка дурацкая, но я не понимаю, где косячу.

Основной

package ex1;

import exMail.SleepUtil;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class RTest {

@Test
public void rTestAll() {
System.setProperty("webdriver.chrome.driver", "C:/Users/kate/Downloads/chromedriver_win32 (2)/chromedriver.exe");
ChromeDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://test/main");
SleepUtil.sleep(9000);
WebElement element = driver.findElementByXPath((".//a[text() = 'Войти']"));
element.click();
SleepUtil.sleep(9000);
WebElement element2 = driver.findElementByXPath(("//input[@placeholder = 'Логин']"));
element2.sendKeys("TestAndTest", Keys.ENTER);
WebElement element3 = driver.findElementByXPath(("//input[@placeholder = 'Пароль']"));
element3.sendKeys("TestAndTest", Keys.ENTER);

FindTest Test = new FindTest(element, driver);
Test.findTESTadOpen();

}
}

Поиск

package ex1;

import exMail.SleepUtil;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

public class FindTest {

WebElement Testelement;
WebDriver driver;
public FindTest (WebElement Testlement, WebDriver driver) {
this.Testelement = Testelement;
this.driver = driver;
}
public void findTESTadOpen() {

ChromeDriver driver = new ChromeDriver();


WebElement elementFind;
elementFind = driver.findElementByXPath(("//input[@placeholder = 'Введите текст для поиска...']"));
elementFind.click();
elementFind.sendKeys("Нет Наркотикам!", Keys.ENTER); ////*[text()='Антинар']
SleepUtil.sleep(7000);
WebElement elementTest = driver.findElementByXPath(("//td[@class = 'left-align no-datable-with-reason z-listcell']"));
SleepUtil.sleep(7000);
elementTest.click();//left-align no-datable-with-reason z-listcell
SleepUtil.sleep(5000);
WebElement elementEdit;
elementEdit = driver.findElementByXPath(("//button[@title = 'Редактировать сведения']"));
elementEdit.click();
}
}

Драйвер должен инициализироваться один раз на тест и дальше обьект драйвера передается в страницы и методы.
Инициализируйте дравйвер один раз в начале теста или в бефор метод (как вам удобно) и дальше работайте только с этим обьектом.

ПС. вообще, лучше посмотреть какие-то туториалы для начинающих по Селениуму и PageObject, там с самого начала такие вещи разбирают

Ваши Хpath краснеют потомучто вы делаете вот так

public class FindTest {

WebElement Testelement;
WebDriver driver; 
public FindTest (WebElement Testlement, WebDriver driver) {
this.Testelement = Testelement;
this.driver = driver;
}
.....

Попробуйте так

public class FindTest {

WebElement Testelement;
ChromeDriver driver; 
public FindTest (WebElement Testlement, ChromeDriver driver) {
this.Testelement = Testelement;
this.driver = driver;
}
.....

Обычный WebDriver driver не умеет вот этого

driver.findElementByXPath()

Спасибо, буду пробовать!