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