【发布时间】:2021-11-26 07:58:03
【问题描述】:
我对 Selenium 和 TestNG 非常陌生。我将通过将有效和无效数据传递给用户名字段和密码字段来验证登录页面。测试数据通过 Excel 工作表。我想在不同的@Test 中提及每个用户名字段和密码字段。我正在使用以下代码。当我使用不同的@Test 时,它不会获得 excel 工作表数据,因为它在 @BeforeTest 中提到。虽然我使用了 dependsOnMethods 它没有得到价值观。谁能帮帮我。
公共类登录{
WebDriver driver;
WebDriverWait wait;
XSSFWorkbook workbook;
XSSFSheet sheet;
XSSFCell cell;
@BeforeTest
public void browserSetup() throws IOException {
System.setProperty("webdriver.chrome.driver", "drivers\\chromedriver.exe");
FileInputStream file = new FileInputStream(new File("D:\\codtest.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
driver = new ChromeDriver();
driver.get("https://opensource-demo.orangehrmlive.com/");
driver.manage().window().maximize();
String userName = sheet.getRow(i).getCell(0).getStringCellValue();
String passWord = sheet.getRow(i).getCell(1).getStringCellValue();
}
}
@Test(dependsOnMethods = {"browserSetup"})
public void userName(){
driver.findElement(By.id("txtUsername")).sendKeys(userName);
WebElement erro_message=driver.findElement(By.xpath("//*[@id=\"spanMessage\"]")).getText()
//error message when username filed is empty
Boolean Display = erro_message.isDisplayed();
if (Display == true) {
System.out.println("User Name field is required");
}
}
@Test
public void passWord(){
driver.findElement(By.id("txtPassword")).sendKeys(userName);
WebElement erro_message=driver.findElement(By.xpath("//*[@id=\"spanMessage\"]")).getText()
//error message when password filed is empty
Boolean Display = erro_message.isDisplayed();
if (Display == true) {
System.out.println("Password field is required");
}
}
}
【问题讨论】: