Оборудованный небольшими техническими знаниями, я начал реализовывать автоматизацию браузера с использованием Selenium Webdriver в Java. Я также использую POI Apache для чтения данных из файла excel. Я смог достичь желаемого, но есть проблема. То, что я намеревался сделать, это иметь лист excel с одним столбцом и «n» количеством строк, каждая из этих ячеек будет десятизначным числом. Используя selenium Webdriver, я смог войти на веб-сайт, чтобы забрать каждое из этих чисел по одной ячейке за раз из Excel, заполнить форму на веб-сайте и создать желаемый результат. Моя проблема в том, что, когда я выбираю второй номер вместо того, чтобы просто вернуться на домашнюю страницу и повторно ввести номер и повторить задачу, откроется новый браузер, затем войдут в систему и т. Д. Я искал Google, чтобы найти решение этой проблемы, и много раз упоминался Юнит. Что я хотел бы знать, является ли JUnit единственным решением? Поскольку мои знания в Java довольно ограничены, есть ли в Java утилита, которая может помочь мне в достижении этого или любого другого лучшего решения, о котором я могу не знать?Наиболее эффективная реализация повторяющейся автоматизации браузера в том же сеансе
Благодарю вас и простите за длинный пост.
public class test {
public static void main(String[] args) throws Exception {
int[][] data;
data = excelRead();
for (int i = 0; i < data.length; i++) {
formfill(data[i][0]);
}
public static void formfill(int number) throws Exception {
WebDriver wd = new FirefoxDriver();
wd.get("URL");
// wd.get("Login Page")).click();
wd.findElement(By.xpath(xpath)).sendKeys("username");
wd.findElement(By.xpath(xpath)).sendKeys("password");
wd.findElement(By.xpath(xpath)).click();
wd.findElement(By.xpath(xpath)).sendKeys(String.valueOf(number));
Set<String> windowId = wd.getWindowHandles();
Iterator<String> itererator = windowId.iterator();
String mainWinID = itererator.next();
String newAdwinID = itererator.next();
wd.switchTo().window(newAdwinID);
wd.switchTo().window(mainWinID);
wd.findElement(By.xpath(xpath to go back to homepage again to enter the next number)).click();
}
public static int[][] excelRead() throws Exception {
File excel = new File("C:\\testing.xls");
FileInputStream fis = new FileInputStream(excel);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet ws = wb.getSheet("Sheet1");
int rowNum = ws.getLastRowNum()+1;
int colNum = ws.getRow(0).getLastCellNum();
int[][] data = new int[rowNum][colNum];
for (int i = 0; i < rowNum; i++) {
HSSFRow row = ws.getRow(i);
for (int j = 0; j < colNum; j++) {
HSSFCell cell = row.getCell(j);
int value = cellToString(cell);
data[i][j] = value;
}
}
return data;
}
public static int cellToString(HSSFCell cell) {
int type;
Object result;
type = cell.getCellType();
switch (type) {
case 0: // numeric value in excel
result = cell.getNumericCellValue();
break;
case 1: // String value in excel
result = cell.getStringCellValue();
break;
default:
throw new RuntimeException("There are no support for this type of cell");
}
double z = (double) result;
int y = (int) z;
return y;
}
}
Вы должны показать им портативные части вашего кода. – PeterMmm
Возможно, вы создаете новый объект «WebDriver» для каждой задачи, чтобы использовать тот же экземпляр браузера, с которого вы можете вернуться на домашнюю страницу, используя [get (...)] (http: //selenium.googlecode. com/git/docs/api/java/org/openqa/selenium/WebDriver.html # get-java.lang.String-). – Titus
Я добавил важные части кода – user3777207