Java 如何在基类中的每个测试中调用一个方法,并且在selenium中有一个数据提供程序

Java 如何在基类中的每个测试中调用一个方法,并且在selenium中有一个数据提供程序,java,selenium,selenium-webdriver,selenium-chromedriver,browserstack,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,Browserstack,我一直在尝试将浏览器堆栈与selenium脚本集成。作为其中的一部分,我在“getBrowser”方法中添加了所需的功能,其中数据提供程序位于基类中。因为我想在多个浏览器中运行脚本。浏览器列表位于基类中的“getData”方法中 如何在测试用例中调用getBrowser方法,并仅在基类中定义getData(浏览器列表)。这就是我所做的,这是不对的。我已经添加了基类和测试脚本 Base.getBrowser(平台平台、字符串browserName、字符串browserVersion);这条线是我卡

我一直在尝试将浏览器堆栈与selenium脚本集成。作为其中的一部分,我在“getBrowser”方法中添加了所需的功能,其中数据提供程序位于基类中。因为我想在多个浏览器中运行脚本。浏览器列表位于基类中的“getData”方法中

如何在测试用例中调用getBrowser方法,并仅在基类中定义getData(浏览器列表)。这就是我所做的,这是不对的。我已经添加了基类和测试脚本

Base.getBrowser(平台平台、字符串browserName、字符串browserVersion);这条线是我卡住的

任何帮助都将不胜感激。谢谢

package com.gale.precision.FundVisualizer.core;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.io.FileInputStream;
导入java.io.IOException;
导入java.io.InputStream;
导入java.util.Properties;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.remote.RemoteWebDriver;
导入org.testng.annotations.DataProvider;
导入org.openqa.selenium.Platform;
导入org.openqa.selenium.StaleElementReferenceException;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.chrome.ChromeDriver;
导入org.openqa.selenium.edge.EdgeDriver;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.ie.InternetExplorerDriver;
导入org.openqa.selenium.remote.DesiredCapabilities;
公共阶级基础{
//公共静态WebDriver驱动程序=null;
公共静态WebDriver;
公共静态字符串DriverPath=System.getProperty(“user.dir”)+“/”+“Drivers”;
公共静态字符串DirectoryPath=System.getProperty(“user.dir”);
公共静态属性prop=新属性();
公共静态InputStream输入=null;
公共静态最终字符串USERNAME=“antonyprabhu1”;
public static final String automatic_KEY=“xHRMpqxgD8sn3e3sr75s”;
公共静态最终字符串URL=“https://”+USERNAME+:“+automation_KEY+”@hub cloud.browserstack.com/wd/hub”;
@数据提供者(name=“EnvironmentDetails”)
publicstaticvoidgetbrowser(平台平台、字符串browserName、字符串browserVersion)引发了错误的FormedUrlexception
{
DesiredCapabilities=新的DesiredCapabilities();
能力。设置平台(平台);
能力。setBrowserName(浏览器名称);
设置版本(browserVersion);
setCapability(“browserstack.debug”,“true”);
驱动程序=新的RemoteWebDriver(新的URL,能力);
试一试{
输入=新文件输入流(DirectoryPath++“//”+“config”+“/”+“app.properties”);
道具载荷(输入);
}捕获(IOE异常){
e、 printStackTrace();
}
}
@数据提供者(name=“EnvironmentDetails”,parallel=true)
公共对象[][]获取数据(){
对象[][]测试数据=新对象[][]{
{
Platform.MAC,“chrome”,“62.0”
}, {
Platform.WIN8,
“铬”,
"62.0"
}, {
Platform.WINDOWS,
“火狐”,
"57"
}
};
返回测试数据;
}
公共静态浏览器(){
driver.quit();
}

}
我可以通过在@test方法中传递参数来解决这个问题

@Test(testName=“Comparison:验证在比较中添加索引”,dataProvider=“EnvironmentDetails”,dataProviderClass=browsersdaptaprovider.class)
public void verifyAddingIndex(平台平台、字符串browserName、字符串browserVersion)引发InterruptedException、MalformedUrlexException{
//test=extent.createTest(Thread.currentThread().getStackTrace()[1].getMethodName());
Base.getBrowser(平台、browserName、browserVersion);
InvestmentsSearch.login(Base.driver);