Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/Selenium:包含每个浏览器的方法的类_Java_Selenium_Selenium Webdriver - Fatal编程技术网

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

Java/Selenium:包含每个浏览器的方法的类,java,selenium,selenium-webdriver,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 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 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();

    }
}
主类

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

        OpenBrowser.chrome();

        OpenSite.dev(driver);

        Test.TC1(driver);
    }
}
我对JAVA和selenium的所有东西都相当陌生,我一直在尝试设置一些基本测试,并尽可能多地组织它们。一切进展顺利,直到我尝试创建一个包含所有浏览器方法的类,然后根据首选项在Main中调用它们。 问题是,我不确定如何从OpenBrowser.java导入main中的驱动程序,因为“驱动程序”已经无法解析,因为它是在其他地方创建的

*我知道网上有人建议使用Junit或Testng之类的测试框架,但我觉得目前它们对我来说有点先进,如果可能的话,我更喜欢这样做。 **我也知道,在不同的浏览器中执行相同的测试是不可能的,因为事情可能会非常糟糕,但我目前正在测试的环境是相当基本的,我想至少作为一个练习来做

谢谢大家!

将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);
    }
}

在OpenBrowser类方法中返回驱动程序,而不是void,并存储在变量中供以后使用。