如何使用不同类别的同一个Webdriver

时间:2018-10-03 02:23:29

标签: java selenium selenium-webdriver selenium-chromedriver

我有2个Java类; Main.java和Methods.java。在Main.java中,我初始化了chrome webdriver,并希望对Methods.java中的方法使用相同的webdriver。下面是代码。

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

我的问题是如何从Main.java调用初始化Webdriver并在Methods.java中使用它?

任何帮助都将受到赞赏!谢谢!

3 个答案:

答案 0 :(得分:0)

您可以在实用程序类中执行类似的操作(例如TestUtil.java)

private static WebDriver wd;

public static WebDriver getDriver() {
    return wd;
}

然后您可以使用以下代码行获取上述任何类中的webdriver并对其进行处理

WebDriver driver = TestUtil.getDriver();

答案 1 :(得分:0)

像这样声明 driver 的全局变量:

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类的实例,就将调用构造函数并可以传递驱动程序引用。

答案 2 :(得分:0)

尝试

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