वह वर्ग जिसमें सभी वर्ग शामिल हों

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

वह वर्ग जो फ़ायरफ़ॉक्स ड्राइवर और लॉगिन शुरू करता है

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

वास्तविक सेलेनियम कोड जो लिंक और सामान पर क्लिक करता है

public class Example{

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

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

मैं जावा के लिए काफी नया हूं, मैंने अब तक केवल अजगर के साथ काम किया है। मैं जो करने की कोशिश कर रहा हूं, उसके पास कई परीक्षणों को कई वर्गों में विभाजित किया गया है जो कि AllTests वर्ग का हिस्सा हैं, इसलिए मैं उन्हें बाहर निकाल सकता हूं या आसानी से नए जोड़ सकता हूं। मेरी परेशानी इस java.lang.NullPointerException के कारण सभी वर्गों में एक ही वेबड्राइवर का उपयोग कर रही है। क्या यह अनुशंसित है या सेलेनियम को हर बार एक नया वेबड्राइवर शुरू करना ठीक होना चाहिए?

1
Alex Toma 10 अक्टूबर 2017, 14:54

2 जवाब

सबसे बढ़िया उत्तर

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();
    }
}
3
Luciano van der Veekens 10 अक्टूबर 2017, 15:44

आप नीचे दिए गए अनुसार अपनी कक्षाएं बदल सकते हैं।

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();

    }
}

यहां, मैं ड्राइवर इंस्टेंस को स्थिर चर में संग्रहीत कर रहा हूं और इसे सभी वर्गों में उपयोग कर रहा हूं। यह आपके काम आ सकता है।

3
Murthi 10 अक्टूबर 2017, 15:35