gpt4 book ai didi

java - 如何将参数从1个类文件中的@Test方法传递到另一个类文件中的带注释的方法(testNG)

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:56 24 4
gpt4 key购买 nike

我正在使用 selenium webdriver 和 java + testng 来测试我的应用程序 gui。我的项目中有 2 个类文件(同一包)。 1 个类文件包含所有 @Test 方法,第二个类文件有 1 个方法,用于生成一个 excel 文件,其中的 Id 在第一个类文件的测试方法中生成。基本上,每次运行测试方法时,我的 AUT 都会生成一个唯一的 ID,我需要捕获该 ID。

代码看起来像这样 -一级文件中的测试方法

@Test (invocationCount = 1)
public void TestIncident() {


ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("selenium");

WebDriver driver=new FirefoxDriver(myprofile);
vDriver = driver;
driver.manage().window().maximize();

driver.get("URL");
driver.findElement(By.id("username-id")).click();
driver.findElement(By.id("username-id")).sendKeys("username");
driver.findElement(By.id("pwd-id")).click();
driver.findElement(By.id("pwd-id")).sendKeys("password");
driver.findElement(By.name("login")).click();

Thread.sleep(5000);


driver.findElement(By.id("reg_img_304316340")).click();
driver.findElement(By.xpath("//div[@class='PageBody pbChrome']"));
//new Actions(driver).moveToElement(driver.findElement(By.xpath("//div[@class='PageBody pbChrome']"))).perform();


driver.findElement(By.xpath("//span[contains(.,'Page1')]")).click();
driver.findElement(By.xpath("//span[contains(.,'New Page')]")).click();
driver.findElement(By.xpath("//div[@class='PageBody pbChrome']")).click();


uniqueID = driver.findElement(By.xpath("//div[@id='WIN_0_304248710']/descendant::dd[@class='HNavSelected arfid304247442 ardbnz3Btn_BCItem3']/descendant::a[@class='btn']")).getAttribute("innerHTML");

driver.findElement(By.id("arid_WIN_3_303530000")).clear();
driver.findElement(By.id("arid_WIN_3_303530000")).click();

}

在同一个包中的第二个类文件中,我正在做这样的事情 -

@BeforeClass
public void createExcel() throws IOException
{

System.out.println("did this run");
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("IncidentNo");
//some code to save uniqueID in excel file
}

现在我无法找到一种方法将uniqueID从第一个类文件中的@Test方法发送到第二个类文件中的方法,该方法将这些uniqueID保存到Excel表中。有什么建议可以有效实现这一目标吗?

最佳答案

从测试类中调用第二类的方法,并将 uniqueID 作为参数传递。

你的代码应该是这样的

    ExcelUtils objExcelutils; //Object of your 2nd class

public class Test{


//all the code from your first class


objExcelutils.writeUniqueID(uniqueID);

}

// this is your 2nd class
int rowCount=1; //variable for the row count
public class Excelutils
{

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet worksheet = workbook.createSheet("IncidentNo");
public void writeUniqueID(String uniqueID)
{
HSSFRow row = worksheet.createRow(rowCount);
HSSFCell cell = row.createCell(rowCount);
cell.setCellValue(uniqueID);
rowCount++;
}

}
try (FileOutputStream outputStream = new FileOutputStream("JavaBooks.xlsx")) {
workbook.write(outputStream);
}

}

关于java - 如何将参数从1个类文件中的@Test方法传递到另一个类文件中的带注释的方法(testNG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com