2014-09-30 37 views
1

我正在爲我的項目使用selenium和testNG框架。 現在發生了什麼是每個類都打開瀏覽器,然後運行它的方法,例如,如果我有五個類,那麼五個瀏覽器將同時打開,然後運行測試。 我想在開始時打開瀏覽器並運行所有方法,然後關閉它。如何在瀏覽器中打開瀏覽器(全部在一個瀏覽器中測試)在硒中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和機構,並給我結果

+0

在'openMain()'方法中再次實例化'driver'實例。您已經聲明它爲'static'。使用@BeforeClass方法啓動webdriver。 '@ Test'中剩下的其他部分。通過這個http://testng.org/doc/documentation-main.html#annotations – 2014-09-30 09:13:03

+0

我試過了,我得到空指針異常 – 2014-09-30 09:40:39

+0

從這一行刪除'webdriver' WebDriver driver = new ChromeDriver();'這就是該行導致空指針異常 – 2014-10-01 04:48:11

回答

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(); 
    } 
}