Java / Selenium:包含每个浏览器的方法的类

时间:2017-11-03 14:53:00

标签: java selenium selenium-webdriver

包含方法中所有浏览器的类:

public class OpenBrowser {

    public static void firefox() {
        WebDriver driver = new FirefoxDriver();
    }

    public static void chrome() {
        WebDriver driver = new ChromeDriver();
    }
}

包含方法中所有环境的类:

public class OpenSite {

    public static void stage(WebDriver driver) {

        driver.get("stagelink.com");
    }

    public static void dev(WebDriver driver) {

        driver.get("devlink.com");
    }
}

包含页面对象的类:

public class HomePage {
    private static WebElement element = null;

    public static WebElement object1(WebDriver driver) {
        element = driver.findElement(By.linkText("object1"));
        return element;
    }
}

包含实际测试的类

public class Test {

    public static void TC1(WebDriver driver) {

        HomePage.object1(driver).click();

    }
}

MAIN CLASS

public class AllTests {
    public static void main(String[] args){

        OpenBrowser.chrome();

        OpenSite.dev(driver);

        Test.TC1(driver);
    }
}

我对JAVA和selenium的所有事情都很陌生,我一直在努力设置一些基本的测试并尽可能地组织它们。一切顺利,直到我尝试创建一个包含所有浏览器的方法的类,然后根据首选项在Main中调用它们。 问题是我不确定如何从OpenBrowser.java中导入驱动程序,因为“驱动程序”无法再解析,因为它是在其他地方创建的。

*我知道在线人员建议使用Junit或Testng这样的测试框架,但我觉得他们现在对我来说有点先进,我更喜欢这样做,如果有可能的话。 **我也知道在各种浏览器中执行相同的测试是不可能的,因为事情可能会非常错误,但我现在正在测试的环境是相当基本的,我想这样做至少作为练习。

谢谢!

1 个答案:

答案 0 :(得分:1)

将openbrowser更改为:

public class OpenBrowser {

    public static WebDriver firefox() {
        return new FirefoxDriver();
    }

    public static WebDriver chrome() {
        return new ChromeDriver();
    }
}

然后在所有测试中

public class AllTests {
    public static void main(String[] args){

        WebDriver driver = OpenBrowser.chrome();

        OpenSite.dev(driver);

        Test.TC1(driver);
    }
}