Мне нужно добавить новую строку в таблицу, которая имеет значок , используя selnium java

#java #selenium-webdriver

#java #selenium-webdriver

Вопрос:

У меня есть квалификационная таблица, где, если первая запись сделана, она не может быть удалена, потому что это обязательное поле.И я хочу добавить еще несколько строк, чтобы добавить все мои данные о квалификации.Я ввожу описание изображения здесь, у меня есть прикрепленное изображение.Пожалуйста, помогите, я новичок в автоматизации.

Мне понравилось удалять существующую и добавлять строку с помощью цикла for, но тогда она не добавляет никакой новой строки, а также не выдает никаких ошибок.

 for(int i =0; i < driver.findElements(By.xpath("//*[@class='icon-x-circle']")).size(); i  ){
    driver.findElement(By.xpath("//*[@class='icon-x-circle']")).click();
}
driver.findElement(By.className("icon-plus")).click();
driver.findElement(By.xpath("//option[@value='number:127'][contains(text(),'Graduate')]")).click();
driver.findElement(By.xpath("//*[@id="yearpassing0"]")).clear();
driver.findElement(By.xpath("//*[@id="yearpassing0"]")).sendKeys("02-2018");
System.out.println("date");
driver.findElement(By.xpath("//*[@id="educational"]/div/form/div/div[1]/table/tbody/tr/td[3]/div/input")).clear();
driver.findElement(By.xpath("//*[@id="educational"]/div/form/div/div[1]/table/tbody/tr/td[3]/div/input")).sendKeys("Mumbai");
driver.findElement(By.xpath("//*[@id="educational"]/div/form/div/div[1]/table/tbody/tr/td[4]/div/input")).sendKeys("60%");
time.delay(7);
WebElement uploadElement = driver.findElement(By.xpath("//*[@id="file0"]"));
time.delay(5);
uploadElement.sendKeys("D:\Preerti\Workspace\data.xlsx");

 System.out.println("upload");

driver.findElement(By.xpath("//*[@id="educational"]//button[contains(text(), 'Save')]")).click();

  

И это HTML-код

 <form ng-submit="addEducationDetails(userEducation);setApplyClass(3)" class="ng-pristine ng-valid">
              <div class="inner-details"> 
                <div class="table-responsive">
                  <table class="table table-bordered">
                    <thead>
                      <tr>
                        <th>Qualification*</th>
                        <!-- <th>Qualification Description</th> -->
                        <th>Passing Year*</th>
                        <th>Board/University</th>
                        <th>Grade/Score/Percentage</th>
                        <th>Attach Certificate</th>
                      <th></th>
                      </tr>
                    </thead>

                  <!--   <div class="form-group">
                          <label>Education</label>
                          <select class="form-control flat-control-inner" ng-model="list.typekey"  >
                            <option value = ""> --Please Select-- </option>
                             <option data-ng-repeat="q in qualificationsList" value="{{q.levelId}}" ng-selected="q.levelId==list.typekey">{{q.qualificationName}}</option>
                          </select>
                        </div> -->

                    <tbody>
                      <!-- ngRepeat: list in userEducation -->
                    </tbody>
                  </table>
                  <div class="text-right adder">
                  <button class="btn btn-default btn-round-add" ng-click="addnewForEducation()"><i class="icon-plus"></i></button>
                </div>
                </div>
              <div class="btn-cntnr">
              <button class="btn btn-default btn-bluer" id="" type="submit">Save</button>
              <a ng-click="cancel()">Cancel</a>
            </div>
              </div>
              </form>       

  

Я смогу добавить все сведения о квалификации.Он не показывает никаких ошибок.

Комментарии:

1. Вы пытаетесь просто нажать кнопку здесь?

Ответ №1:

Основываясь на предоставленном вами HTML, вы можете нажать кнопку , используя этот код:

 driver.findElement(By.xpath("//button[contains(@class, 'btn-round-add')]")).click();