@BeforeClass不会启动测试

时间:2014-11-28 12:12:48

标签: java selenium selenium-webdriver junit4 selenium-firefoxdriver

@BeforeClass没有在Webdriver,Java中启动我的测试,我不知道哪里出错了

@BeforeClass
public static void setup() {
    driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get(baseUrl + "login");
    driver.findElement(By.id("username")).sendKeys("myUserName");
    driver.findElement(By.id("password")).sendKeys("myPassword"); 
    driver.findElement(By.id("loginBTN")).click();
}

在代码之后我开始定期测试:

@Test
public void firstTest() {
    //myTestCode
}

尝试运行后,所有测试都失败,webdriver无法启动等等......

这很好,因为我必须测试一个我必须登录的页面(使用@Before webdriver在每次测试之前启动,所以显然我需要@BeforeClass这个。)

2 个答案:

答案 0 :(得分:0)

@BeforeClass
public static void setup() {

//这需要在这里运行,这里的意思就是这个方法唯一的本地化     Webdriver驱动程序;

driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get(baseUrl + "login");
driver.findElement(By.id("username")).sendKeys("myUserName");
driver.findElement(By.id("password")).sendKeys("myPassword"); 
driver.findElement(By.id("loginBTN")).click();

}

然后你的测试将起作用

@Test

public void firstTest() {
//myTestCode

}

答案 1 :(得分:0)

示例代码:希望这可行。

public class OpenBrowsers {

WebDriver driver = null;

@BeforeClass
public void beforeClass() {
    System.out.println("beforeClass");
    driver = new FirefoxDriver();
}

@Test
public void openGoogle() {
    System.out.println("openGoogle");
    driver.get("www.google.com");
}

@Test
public void openYahoo() {
    System.out.println("openYahoo");
    driver.get("www.yahoo.com");
}

@AfterClass
public void afterClass() {
    driver.close();
    System.out.println("afterClass");
}}