У меня есть Excel с 500 URL. Сценарий Selenium должен выполнять те же действия после нажатия на каждый URL. То есть, после нажатия 1-го URL-адреса в 1-й ячейке, скрипт должен открыть этот URL-адрес, затем он должен найти элемент в этом URL-адресе, используя идентификатор, который я упоминаю во второй ячейке. После этого он должен найти следующий элемент в том же URL, используя идентификатор из третьей ячейки и так далее. После того, как все идентификаторы выбраны и расположены в 1-м ряду, скрипт должен перейти во 2-й ряд в Excel.
Во второй строке первой ячейкой является URL, за которым следуют идентификаторы элементов в последующих ячейках. Скрипт должен продолжать действия до тех пор, пока не останется больше ссылок.
См. Данные Excel здесь
1-й столбец URL для доступа. 2-й столбец - это имя элемента, а 3-й - это идентификатор локатора для этого элемента.
Вот код, который я написал. В настоящее время он правильно обращается ко всем трем URL-адресам. Но печатает только одно имя элемента («Google»). Я хочу, чтобы скрипт нажимал на все 3 ссылки и выводил на экран все имена трех элементов. Затем я хочу, чтобы скрипт щелкнул по этому элементу на основе идентификатора, который я упомянул в третьем столбце
.
driver.manage () окно () увеличить ().
driver.findElement (By.xpath ("// button [@ class = 'btn btn-lg btn-primary btn-block btn-signin']")). click ();
Thread.sleep (3000);
FileInputStream fis = new FileInputStream("D:\\sel_test.xlsx");
@SuppressWarnings("resource")
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
int s=sheet.getLastRowNum()+1;
for(int i=0; i<s; i++){
XSSFCell cell=sheet.getRow(i).getCell(0);
String url=cell.toString();
driver.get(url);
Thread.sleep(5000);
XSSFCell docname = sheet.getRow(i).getCell(i+1);
driver.findElement(By.id(docname)).click();
System.out.println(docname);
}