我正在为我的项目使用selenium和testNG框架。 现在发生的事情是每个类都打开一个浏览器然后运行它的方法,例如,如果我有五个类,那么五个浏览器将同时打开然后运行测试。 我想在开始时打开浏览器并运行所有方法,然后关闭它。
public class openSite
{
public static WebDriver driver;
@test
public void openMain()
{
System.setProperty("webdriver.chrome.driver","E:/drive/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://vtu.ac.in/");
}
@test
//Clicking on the first link on the page
public void aboutVTU()
{
driver.findElement(By.id("menu-item-323")).click();
}
@Test
//clicking on the 2nd link in the page
public void Institutes()
{
driver.findElement(By.id("menu-item-325")).click();
}
现在我想要的是testNG应该打开浏览器一次并打开vtu.ac.in一次然后执行aboutVTU和Institutes的方法并给我结果
答案 0 :(得分:1)
您已在字段声明中声明了driver
的类型。在openMain()
中重新声明它是你的问题。它看起来应该是这样的。
import static org.testng.Assert.assertNotNull;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class OpenSite {
private WebDriver driver;
@BeforeClass(alwaysRun=true)
public void openMain()
{
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
driver = new ChromeDriver();
driver.get("http://vtu.ac.in/");
}
@Test
//Clicking on the first link on the page
public void aboutVTU()
{
assertNotNull(driver);
driver.findElement(By.id("menu-item-323")).click();
}
@Test(dependsOnMethods="aboutVTU")
//clicking on the 2nd link in the page
public void Institutes()
{
assertNotNull(driver);
driver.findElement(By.id("menu-item-325")).click();
}
}