我正在使用Selenium,我對Java很新。我有三個類ATSmoke(),它是主類。我在Excel工作表中的所有方法名稱都位於其他兩個類Profile()和Schedule()中。現在我使用POI庫來獲取單元格值(即方法名稱)。在這裏,我陷入瞭如何在另一個類Profile()中調用這些方法(edit_contact_info)。如果他們在同一班,我可以使用相同的班級名稱來引用。但不能爲另一個班級做。另外還有一種叫ATTestDriver在那裏我有所有實用的方法,如選擇webdriver的,瀏覽器類等我如何調用在主類java的其他類中的方法
公共類ATSmoke {
public static void main(String[] args){
Profile profileDriver = new Profile(Browsers.CHROME);
XSSFWorkbook srcBook = null;
try {
srcBook = new XSSFWorkbook("./TestData/Testcase_data_v1.xlsx");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
XSSFSheet sourceSheet = srcBook.getSheet("Testcases");
int rowCount = sourceSheet.getLastRowNum();
for (int i=1; i<=rowCount; i++){
int rownum=i;
XSSFRow testcaserow=sourceSheet.getRow(rownum);
XSSFCell testcase_Name= testcaserow.getCell(1);
String flagState=testcaserow.getCell(2).getStringCellValue();
if (flagState.equals("yes")) {
if (testcase_Name != null) {
try {
Method myMethod = ATSmoke.class.getMethod(testcase_Name.getStringCellValue());
myMethod.invoke(new ATSmoke());
} catch (NoSuchMethodException | SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("");
}
}
}
try {
srcBook.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
公共類檔案擴展ATTestDriver {
public Profile(Browsers browser) {
super(browser);
}
public void edit_contact_info() {
WebElement pageopened =this.waitForElement(By.cssSelector(".qualifications p b b"));
System.out.println("you have " +pageopened.getText());
driver.findElement(By.cssSelector("contact-information button")).click();
}
}
profileDriver.edit_contact_info()? – user2677821