Как использовать один и тот же Webdriver из другого класса - PullRequest
0 голосов
/ 03 октября 2018

У меня есть 2 класса Java;Main.java и Methods.java.В Main.java я инициализирую веб-драйвер chrome и хочу использовать тот же веб-драйвер для метода Methods.java.Ниже приведены коды.

Под Main.java

Methods getMethods = new Methods();

    @BeforeTest
    public void Setup()
    {
        System.setProperty("webdriver.chrome.driver", "C:\\...\\chromedriver.exe");

        driver = new ChromeDriver();

        driver.get(PropertiesConfig.getObject("websiteUrl"));

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);          
    }

  @Test
        public void TestCase1()
        {
          getMethods.method1();
        }


@AfterTest
    public void QuitTC() {
        getMethods.QuitTC(); }

Под Methods.java

    public void method1 (){
                  driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        …..  }

    public void QuitTC() {
        driver.quit();
    }

Мой вопрос, как мне вызвать инициализировать Webdriver из Main.Ява и использовал его в Methods.java?

Любая помощь с благодарностью!Спасибо!

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Объявите глобальную переменную для драйвера следующим образом:

WebDriver driver = null; 

@BeforeTest
public void Setup()
{
    System.setProperty("webdriver.chrome.driver", "C:\\...\\chromedriver.exe");

    driver = new ChromeDriver();

    driver.get(PropertiesConfig.getObject("websiteUrl"));

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);          
}  

Теперь вы можете вызывать method1 из класса метода следующим образом:

public class Methods{

 public Methods(WebDriver driver){
      this.driver = driver; 
  }

public void method1 (){
                  driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        …..  }
}   

Теперь один развы создаете экземпляр класса Methods, конструктор будет вызван и ссылка на драйвер может быть передана.

0 голосов
/ 15 августа 2019

Попробуйте это

    Class1 {
    public WebDriver driver = null;
    public String baseURL="...";

    public void openURL() {
    System.setProperty("webdriver.chrome.driver", "D:...\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.get(baseURL);
    }

    Class2 extends Class1 {
    driver.findElement(....);
    }
0 голосов
/ 03 октября 2018

Вы можете сделать что-то подобное в служебном классе (скажем, TestUtil.java)

private static WebDriver wd;

public static WebDriver getDriver() {
    return wd;
}

, а затем вы можете использовать следующую строку, чтобы получить веб-драйвер в любом из упомянутых классов и работать над ним

WebDriver driver = TestUtil.getDriver();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...