package bannerTstNG;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class BannerTestNG {
@BeforeTest
public void OpenTheSuperAdmin() throws InterruptedException {
System.setProperty("webdriver.chrome.driver","D:\\myselenium\\bannerTstNG\\driver\\chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://ss-superadmin-staging.labaiik.net/");
driver.manage().window().maximize();
driver.findElement(By.xpath("//input[@id='email']")).sendKeys("arsalan.hameed@avrioc.com");
driver.findElement(By.xpath("//input[@id='password']")).sendKeys("admin");
Thread.sleep(1000);
driver.findElement(By.xpath("//button[contains(text(),'Login')]")).click();
Thread.sleep(6000);
}
@Test
public void ClickOnBanner() {
driver.findElement(By.xpath("//body/div[2]/div[1]/div[1]/div[1]/div[3]/div[1]/ul[1]/li[4]/a[1]")).click
}
}
The function OpenTheSuperAdmin()
is running but when ClickOnBanner()
is executed, I get the following error: driver cannot be resolved.
Why is OpenTheSuperAdmin()
being executed without any errors and the driver error not showing there?
You are instantiating the driver
variable inside of the OpenTheSuperAdmin
method so it is outside of the scope of the ClickOnBanner
test. Please try the following:
package bannerTstNG;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class BannerTestNG {
private WebDriver driver;
@BeforeTest
public void OpenTheSuperAdmin() throws InterruptedException {
System.setProperty("webdriver.chrome.driver","D:\\myselenium\\bannerTstNG\\driver\\chromedriver\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://ss-superadmin-staging.labaiik.net/");
driver.manage().window().maximize();
driver.findElement(By.xpath("//input[@id='email']")).sendKeys("arsalan.hameed@avrioc.com");
driver.findElement(By.xpath("//input[@id='password']")).sendKeys("admin");
Thread.sleep(1000);
driver.findElement(By.xpath("//button[contains(text(),'Login')]")).click();
Thread.sleep(6000);
}
@Test
public void ClickOnBanner() {
driver.findElement(By.xpath("//body/div[2]/div[1]/div[1]/div[1]/div[3]/div[1]/ul[1]/li[4]/a[1]")).click
}
}
By declaring the driver as a field in the class you will now be able to access it from any of the tests inside of the class.