使用Selenium w Java和Test NG(POM格式)將所有內容從非靜態切換爲靜態,並相應地更改所有內容,獲得NullPointerException。當所有東西都不是靜態的時候它就工作了,但是讓所有東西都靜態需要更少的代碼,所以我更喜歡這樣。當我將所有方法都改爲靜態時,發生NullPointerException
這是我的代碼..雖然試圖粘貼我的代碼出於某種原因,它不能識別導入語句作爲代碼,所以我只是沒有包含它們,但放心一切都已導入所需! :)
Package pages;
public class locationPage {
WebDriver driver;
static @FindBy (id="btn_bogota") WebElement chooseBogota;
static @FindBy (id="btn_medellin") WebElement chooseMedellin;
static @FindBy (xpath="//title") WebElement pageTitle;
public locationPage (WebDriver driver){
this.driver=driver;
PageFactory.initElements(driver, this);
}
public static void chooseLocation (String location) {
if (location.equals("Bogota"))
{
chooseBogota.click();
}
else if (location.equals("Medellin")){
chooseMedellin.click();
}
}
}
Package testcases;
public class selectLocation {
WebDriver driver;
@BeforeClass
public void setup() throws InterruptedException{
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://dev01.juanregala.com.co/");
//Generating Alert Using Javascript Executor
JavascriptExecutor javascript = (JavascriptExecutor) driver;
javascript.executeScript("alert('Select Location');");
Thread.sleep(2000);
driver.switchTo().alert().accept();
}
@AfterTest
public void quit(){
driver.quit();
}
@Test (priority=0)
public void location(){
locationPage.chooseLocation("Medellin");
}
}
它不斷給我一個NullPointerException指
chooseMedellin.click();
和
locationPage.chooseLocation("Medellin");
我真的不知道怎麼回事,來形容我的問題: (請幫忙!
也...我想你可能不理解使用'@ AfterTest'註釋TestNG中的。在每種測試方法之後,* not *運行,而是在特定TestNG套件的''節點中的所有測試之後運行。我認爲你實際上需要'@ BeforeMethod'和'@ AfterMethod'註釋,它們分別在每個**'@ Test'方法之前和之後運行。請參閱TestNG文檔:http://testng.org/doc/documentation-main.html –
是的,我發佈這個問題後立刻改變了它!非常感謝您認識到:) – daniyalmistry