Как получить доступ к переменной метода void другого класса из другого класса - PullRequest
0 голосов
/ 09 мая 2018
  Code of Broweserselection.java 


    @SuppressWarnings("serial")
        class Browserselection extends JFrame implements ActionListener
        { 
         public void BrowserSelection1()
         { Some code...}

         @Override
         public void actionPerformed(ActionEvent e)
         {
           WebDriver d1 = null;

           if(FireFox.isSelected())
            {
             dispose();
             System.setProperty("webdriver.gecko.driver","driverPath");
             d1 = new  FirefoxDriver();
            }

          this.setDriver(d1);
         }

        public WebDriver setDriver(WebDriver driver)
        {
          this.driver2 = driver;
          this.getDriver();

          return this.driver2;
        }

        public WebDriver getDriver()
        {
          return this.driver2;          
        }

===========================================================================

Code of MyMainClass.java

    public class MyMainClass{

        public static void main(String[] args) throws InterruptedException, IOException {

            Browserselection bs= new Browserselection();
            bs.BrowserSelection1();
            WebDriver driver=bs.getDriver();
            System.out.println(driver + "Hello from main");
  1. здесь драйвер показывает значение null, в то время как мне нужен доступ к значению Browserselection.java '* * метода *. Я println Browserselection.java имеет правильное значение в то время как в MyMainClass.java bs.getDriver(); показывает null.

  2. есть ли способ получить доступ к переменной d1 условия ifPerformed nethod из MyMainClass?

Я новичок в Java и изучаю селен.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Проблема не выбрана. это в архитектуре вашего кода. см. ниже код может помочь вам.

@SuppressWarnings("serial")
    class Browserselection extends JFrame implements ActionListener
    { 
     public void BrowserSelection1(String selectedBrower)
     { 
         WebDriver d1 = null;

        if(selectedBrower.equals("firefox")){
            d1 = new  FirefoxDriver();  
        }else if(selectedBrower.equals("firefox")){
            d1 = new  ChromeDriver();   
        }
     }
     /*  
      As per this code , your input from user will be received in this method
     */
     @Override
     public void actionPerformed(ActionEvent e)
     {
       String driverSelected = "";
        if(FireFox.isSelected()){
            driverSelected =  "firefox";
        }else if(Chrome.isSelected()){
            driverSelected =  "chrome";
        }
        Browserselection bs= new Browserselection();
        bs.BrowserSelection1(driverSelected);

     }
}

Метод Main будет использоваться только для запуска вашего проекта, поэтому нет необходимости создавать объект класса Browserselection в методе main, вместо этого создайте объект класса там, где он действительно требуется.

Надеюсь, это поможет вам.

0 голосов
/ 09 мая 2018

Используйте этот метод:

public WebDriver getDriver()
    {
      driver2 = new ChromeDriver();
      return this.driver2;          
    }

Обратите внимание, что вы должны объявить driver2 в вашем классе как: private WebDriver driver2;

Весь ваш класс будет выглядеть так:

public class Browserselection {

   private WebDriver driver2;

    public void BrowserSelection1()
     {
        //some code 
     }

     @Override
     public void actionPerformed(ActionEvent e)
     {
       WebDriver d1 = null;

       if(FireFox.isSelected())
        {
         dispose();
         System.setProperty("webdriver.gecko.driver","driverPath");
         d1 = new  FirefoxDriver();
        }

      this.setDriver(d1);
     }

    public WebDriver setDriver(WebDriver driver)
    {
      this.driver2 = driver;
      this.getDriver();

      return this.driver2;
    }

    public WebDriver getDriver()
    {
      driver2 = new ChromeDriver();
      return this.driver2;          
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...