Java Selenium

时间:2017-10-10 11:54:36

标签: java selenium selenium-webdriver

包含所有类的类

public class AllTests{
    public static void main(String[] args) {
        Loginer.login();
        Example.linkOne();
        Examplee.linkTwo();
    }
}

启动Firefox驱动程序和登录的类

public class Loginer{
    public static login(){
        WebDriver driver = new FirefoxDriver();
        driver.get("http://LINKISHERE.COM/");
        //other login code
    }
}

点击链接和内容的实际Selenium代码

public class Example{

    public static linkOne() {
            **driver**.findElement(By.className("CLASSNAME")).click();
    }

    public static linkTwo() {
            **driver**.findElement(By.className("CLASSNAME")).click();
    }
}

我对JAVA很新,到目前为止我只使用过python。 我想要做的是将多个测试分成多个类,这些类是AllTests类的一部分,因此我可以将它们取出或添加新的轻松。 由于这个java.lang.NullPointerException,我的麻烦一直在所有类中使用相同的WebDriver。这是推荐还是每次让Selenium开始新的WebDriver都没关系?

2 个答案:

答案 0 :(得分:3)

您可以按以下方式更改课程。

public class Loginer{

  public static WebDriver driver;

  public static login(){

    driver = new FirefoxDriver();

    driver.get("http://LINKISHERE.COM/");
    //other login code
    }
}

public class Example{

 public static linkOne() {

        Loginer.driver.findElement(By.className("CLASSNAME")).click();

    }
}

public class Examplee{

 public static linkTwo() {

        Loginer.driver.findElement(By.className("CLASSNAME")).click();

    }
}

这里,我将驱动程序实例存储在静态变量中并在所有类中使用它。它可能适合你。

答案 1 :(得分:3)

AllTests类中初始化驱动程序,并将其作为方法参数传递给其他人。

public class AllTests {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();

        Loginer.login(driver);
        Example.linkOne(driver);
        Examplee.linkTwo(driver);
    }
}

public class Loginer {
    public static void login(WebDriver driver){
        driver.get("http://LINKISHERE.COM/");
        // other login code
    }
}

public class Example { 
    public static void linkOne(WebDriver driver) {
        driver.findElement(By.className("CLASSNAME")).click();
    }
}

public class Examplee {  
    public static void linkTwo(WebDriver driver) {
        driver.findElement(By.className("CLASSNAME")).click();
    }
}