Как создать цикл в веб-драйвере selenium, который считывает значение из Excel и выполняет повторяющиеся действия - PullRequest
0 голосов
/ 02 июля 2019

У меня есть 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);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...