尝试使用webdriver返回页面时发生错误

时间:2014-12-11 15:53:19

标签: webdriver

我正在编写一些测试脚本,并在运行时遇到某种类型的启动错误。它一直声明logintest应该是void,但它会返回另一个页面。以下任何想法都是代码

 package com.testscripts;

    import java.util.concurrent.TimeUnit;

    import org.junit.*;
    import org.junit.rules.ErrorCollector;

    import static org.junit.Assert.*;

    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.PageFactory;

    import com.helpers.setup;
    import com.pages.Homepage;

    public class TestCase1_login extends setup {

        public TestCase1_login() throws Exception {
            super();
            // TODO Auto-generated constructor stub
        }


        public static boolean IsLogIn = false;

        @Rule
        public ErrorCollector errorCollector = new ErrorCollector();





        @Test

        public Homepage LogIntest() {

            try {

                System.out.println(System.getProperty("user.dir"));
                driver.get("http://localhost:2020/Clockwise/Login.htm");
                driver.findElement(By.id("USERNAME")).clear();
                driver.findElement(By.id("USERNAME")).sendKeys("system");
                driver.findElement(By.id("PASSWORD_EDIT")).clear();
                driver.findElement(By.id("PASSWORD_EDIT")).sendKeys("clockwise");
                driver.findElement(
                        By.xpath("//button[@onclick='return OkClick();']")).click();
                Thread.sleep(3000);


            }

            catch (Throwable t) {

                errorCollector.addError(t); // Assume.assumeNoException(t); // no
                                            // testcases will be run if
                System.out.println("LogIn Failure");

            }
            return new Homepage(driver);

        }



    }

HomePage.Java:

package com.pages;

import org.openqa.selenium.WebDriver;

public class Homepage {


    private WebDriver driver;

    public  Homepage(WebDriver driver){

        this.driver=driver;

    }

}

1 个答案:

答案 0 :(得分:0)

这是因为JUnit需要所有测试方法(@Test)"必须"声明返回类型为" void"。

您需要为Login创建另一个页面类(例如LoginPage)并创建一个返回HomePage的登录方法,然后您可以在下面的JUnit测试类中调用它:

@Test
public void testLogin() throws Exception {

    LoginPage loginPage = new LoginPage(driver);
    HomePage homePage = loginPage.loginAs("system", "clockwise");
    assertEquals("Login success verification done here",homePage.getLogingSuccessMessage());

}