Базовый класс:страница объектной модели не расширяя водителя от класса
protected WebDriver driver;
protected String URL = "https://www.example.com/";
public static String SignupURL = "https://www.example.com/login";
public Login loginpage;
@BeforeClass
public void setup()
{
System.setProperty("webdriver.chrome.driver","E:\\Selenium-Webdriver\\Chrome_Driver\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.navigate().to(URL);
loginpage = PageFactory.initElements(driver,Login.class);
}
Войти Класс:
protected WebDriver driver;
public Login(WebDriver driver) {
this.driver = driver;}
public Login Method1()
{
//Logic
}
LoginTest Класс:
public class LoginTest extends Base {
@Test
public void method1()
{
setup() //Have to Call it
//Logic
}
@Test
public void method2
{
setup() //Have to Call it
//Logic
}
}
Вопрос: Зачем ему нужно позвонить setup() метод для каждого метода в тестовом классе.
Я уже расширяю класс, тогда водитель должен позвонить автоматически, но это не так. Когда я не звоню setup(), то получение Nullpointer Exception, Если я его назову, тогда система откроет новый браузер для каждого метода.
Вы можете вставить полное сообщение об ошибке, которое вы получаете. Я думаю, это связано с тем, что сценарий не может идентифицировать драйвер. –
На первый взгляд код выглядит как OK. Вам не нужно вызывать настройку в каждом методе, вы можете поделиться своим журналом трассировки, может быть, он генерирует nullpointer какой-либо другой фрагмент кода, –
Используйте аннотацию @BeforeTest и сделайте веб-страницу общедоступной. .. это работает для меня ...... я думаю, что это также поможет u – noor