package demoActitime;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class LoginActitime {
private String UN;
private String Pass;
private WebElement username;
private WebElement password;
private WebDriver driver = new FirefoxDriver();
private String Url = "http://demo.actitime.com/";
private String Urlvalid = "http://demo.actitime.com/user/submit_tt.do";
private String expected = null;
private String actual = null;
private String xpathUsername = null;
private String xpathPassword = null;
private String xpathLogin = null;
@BeforeMethod
public void findElements()
{
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.get(Url);
xpathUsername = "//input[@id='username']";
xpathPassword = "//input[@type='password']";
xpathLogin = "//a[@id='loginButton']/div";
}
@AfterMethod
public void doTask()
{
System.out.println(expected);
driver.findElement(By.xpath(xpathUsername)).clear();
driver.findElement(By.xpath(xpathPassword)).clear();
driver.findElement(By.xpath(xpathUsername)).sendKeys(UN);
driver.findElement(By.xpath(xpathPassword)).sendKeys(Pass);
driver.findElement(By.xpath(xpathLogin)).click();
actual = driver.getTitle();
Assert.assertEquals(actual, expected);
// driver.quit();
}
@Test(priority = 0)
public void LoginValidUNInvalidPass()
{
this.UN="admin";
this.Pass="basheer";
System.out.println("LoginValidUNInvalidPass");
expected = "actiTIME - Login";
}
@Test()
public void LoginValidUNValidPass()
{
this.UN="admin";
this.Pass="manager";
System.out.println("LoginValidUNValidPass");
expected = "actiTIME - Enter Time-Track";
}
@Test
public void LoginInValidUNInvalidPass()
{
this.UN="basheer";
this.Pass="basheer";
System.out.println("LoginInValidUNInvalidPass");
expected = "actiTIME - Login";
}
@Test
public void LoginInValidUNValidPass()
{
this.UN="basheer";
this.Pass="manager";
System.out.println("LoginInValidUNValidPass");
expected = "actiTIME - Login";
}
}
這是我的更新代碼。我已經刪除了初始化,找到aftermethod中的元素並放入before方法。當我傳遞有效的用戶名和密碼時,@After方法不等待Web驅動程序登錄,它的顯示測試執行完成。@測試方法不會等待硒碼完成其執行
你裏面findElements代碼()方法,你必須implicitwait和其他的東西在裏面@AfterMethod,這不向右看。你會希望之前擁有它們。 –
@ChandanNayak,我刪除了初始化驅動程序的代碼,隱式地等待並從After Method中找到該元素,並將它放入BeforeMethod中,但仍未達到我的目的。 –
請把@ BeforeTest的顯示代碼/套房/法 – san1deep2set3hi