如何使用来自不同类的相同 Web 驱动程序



我有2个Java类;主要.java和方法.java。在 Main.java,我初始化了 chrome 网络驱动程序,我想在 Methods.java 中使用相同的网络驱动程序。以下是代码。

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

在"方法"下.java

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

我的问题是我如何从 Main 调用初始化 Web 驱动程序.java并在方法.java中使用它?

任何帮助将不胜感激!谢谢!

你可以在实用程序类中做这样的事情(比如TestUtil.java(

private static WebDriver wd;
public static WebDriver getDriver() {
return wd;
}

然后您可以使用以下行在提到的任何类中获取 Web 驱动程序并对其进行处理

WebDriver driver = TestUtil.getDriver();

像这样为驱动程序声明一个全局变量:

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

试试这个

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

相关内容

  • 没有找到相关文章