我謹代表我的結構我在項目中使用。 看來你忘了@Before
,@After
和@Test
表示法。
public class BaseSeleniumTest extends SeleneseTestBase {
static WebDriver driver;
@Before
public void openFirefox() throws IOException {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get(propertyKeysLoader("login.base.url"));
doAdminLogin();
}
@After
public void closeFirefox(){
driver.quit();
}
public void doAdminLogin() throws IOException {
String curTitle=driver.getTitle();
locatorFindingHandling("login.logininput", "login.admin.login");
locatorFindingHandling("login.passinput", "login.admin.pass");
locatorFindingHandling("login.loginbutton");
String newTitle=driver.getTitle();
Assert.assertFalse(curTitle.equals(newTitle));
}
public void locatorFindingHandling(String key) throws IOException /*throws IOException*/ {
fluentWait(By.cssSelector(propertyKeysLoader(key))).click();
}
public void locatorFindingHandling(String key, String key1) throws IOException {
driver.findElement(By.xpath(propertyKeysLoader(key))).sendKeys(propertyKeysLoader(key1));
}
public void doLogout() throws InterruptedException, IOException {
String curTitle=driver.getTitle();
jsClick("rms.home.logout");
String newTitle=driver.getTitle();
Assert.assertFalse(curTitle.equals(newTitle));
}
....
}
然後我致以BaseSeleniumTest.java
以下列方式:
public class LoginPageTestSuite extends BaseSeleniumTest {
@Test
public void loginWithEmptyCredentials() throws IOException, InterruptedException {
doLogout();
fluentWait(By.cssSelector(propertyKeysLoader("login.loginbutton"))).click();
Assert.assertTrue(fluentWait(By.cssSelector(propertyKeysLoader("login.validator.invalidautentication"))).getText().trim().equals("Invalid authentication"));
}
@Test
public void logoutAdminLogin() throws IOException, InterruptedException {
doLogout();
doAdminLogin();
}
@Test
public void loginWithWrongPass() throws IOException, InterruptedException {
doLogout();
locatorFindingHandling("login.logininput", "login.admin.login");
locatorFindingHandling("login.passinput", "login.invalidPass");
locatorFindingHandling("login.loginbutton");
Assert.assertTrue(fluentWait(By.cssSelector(propertyKeysLoader("login.validator.invalidautentication"))).getText().trim().equals("Invalid authentication"));
}
.....
}
所以從你的代碼點它是這樣的:
public class Setupbase extends SeleneseTestBase {
static WebDriver driver;
@Before
public void openFirefox() throws IOException {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
String baseUrl = "http://example.com";
driver.get(baseUrl);
}
@After
public void closeFirefox(){
driver.quit();
}
}
public class Login extends Setupbase{
@Test
public void loginTest() {
driver.findElement(By.id("Email")).clear();
driver.findElement(By.id("Email")).sendKeys("username");
driver.findElement(By.id("Passwd")).clear();
driver.findElement(By.id("Passwd")).sendKeys("password");
driver.findElement(By.id("signIn")).click();
}
}
希望這對你的作品。
driver.get(baseUrl +「/」);從這行不工作..空webdriver窗口已打開..但baseurl沒有加載.. – bumblebee87
要麼不添加'/'在您的基地網址字符串或刪除'/'你的baseurl字符串在setupbase class.See編輯的答案。 –