Как установить несколько флажков в Selen Webdriver? - PullRequest
0 голосов
/ 20 февраля 2020

Поскольку я хочу установить несколько флажков в Selen Webdriver, чтобы я использовал webelement 'id', чтобы щелкнуть, но с какой проблемой я сталкиваюсь, означает, что все идентификаторы флажков одинаковы в моем HTML, так что в любом случае установите несколько флажков?

Здесь я отправляю мой код HTML: первый флажок:

<tbody role="rowgroup">
<tr data-uid="6adb7eb4-7169-4ab8-aef4-cc8b2774beac" role="row" class="k-state-selected" aria-selected="true"><td style="text-align:left" role="gridcell">Order</td><td style="text-align:left" role="gridcell">55</td><td style="text-align:left" role="gridcell">ORD55</td><td style="text-align:right" role="gridcell">2,400.00</td><td style="text-align:right" role="gridcell">2,400.00</td><td style="text-align:center" role="gridcell" id="GridPayRecp_active_cell" class="" aria-describedby="c7c68ce1-edc3-4958-a6c1-2611999356b0 GridPayRecp_active_cell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;" checked=""></td><td style="text-align:right" role="gridcell">2,400.00</td></tr><tr class="k-alt" data-uid="3f3d1588-6f42-4c22-bdda-28c090ece58b" role="row"><td style="text-align:left" role="gridcell">Order</td><td style="text-align:left" role="gridcell">57</td><td style="text-align:left" role="gridcell">ORD57</td><td style="text-align:right" role="gridcell">3,600.00</td><td style="text-align:right" role="gridcell">3,597.00</td><td style="text-align:center" role="gridcell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;"></td><td style="text-align:right" role="gridcell">0.00</td></tr><tr data-uid="1ab110de-fbe6-4954-b612-39c3cb7fc8ba" role="row"><td style="text-align:left" role="gridcell">Proforma</td><td style="text-align:left" role="gridcell">90</td><td style="text-align:left" role="gridcell">PRO90</td><td style="text-align:right" role="gridcell">3,600.00</td><td style="text-align:right" role="gridcell">3,366.00</td><td style="text-align:center" role="gridcell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;"></td><td style="text-align:right" role="gridcell">0.00</td></tr>
</tbody>

второй флажок:

<tbody role="rowgroup">
<tr data-uid="6adb7eb4-7169-4ab8-aef4-cc8b2774beac" role="row" class="k-state-selected" aria-selected="true"><td style="text-align:left" role="gridcell">Order</td><td style="text-align:left" role="gridcell">55</td><td style="text-align:left" role="gridcell">ORD55</td><td style="text-align:right" role="gridcell">2,400.00</td><td style="text-align:right" role="gridcell">2,400.00</td><td style="text-align:center" role="gridcell" id="GridPayRecp_active_cell" class="" aria-describedby="c7c68ce1-edc3-4958-a6c1-2611999356b0 GridPayRecp_active_cell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;" checked=""></td><td style="text-align:right" role="gridcell">2,400.00</td></tr><tr class="k-alt" data-uid="3f3d1588-6f42-4c22-bdda-28c090ece58b" role="row"><td style="text-align:left" role="gridcell">Order</td><td style="text-align:left" role="gridcell">57</td><td style="text-align:left" role="gridcell">ORD57</td><td style="text-align:right" role="gridcell">3,600.00</td><td style="text-align:right" role="gridcell">3,597.00</td><td style="text-align:center" role="gridcell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;"></td><td style="text-align:right" role="gridcell">0.00</td></tr><tr data-uid="1ab110de-fbe6-4954-b612-39c3cb7fc8ba" role="row"><td style="text-align:left" role="gridcell">Proforma</td><td style="text-align:left" role="gridcell">90</td><td style="text-align:left" role="gridcell">PRO90</td><td style="text-align:right" role="gridcell">3,600.00</td><td style="text-align:right" role="gridcell">3,366.00</td><td style="text-align:center" role="gridcell"><input type="checkBox" id="chkSelect" onclick="EditchkSelect()" height="15px;" width="15px;"></td><td style="text-align:right" role="gridcell">0.00</td></tr></tbody>

третий флажок:

</tbody>

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Как установить все флажки с одинаковым идентификатором, (Java пример):

WebDriverWait wait = new WebDriverWait(driver, 10);

List<WebElement> checkboxes = wait.until(ExpectedConditions
        .presenceOfAllElementsLocatedBy(By.cssSelector("tr[role=row] input#chkSelect[type=checkBox]")));

for (WebElement checkbox : checkboxes) {
    wait.until(ExpectedConditions.elementToBeClickable(checkbox)).click();
}

Установите первый и второй флажки для каждой строки:

WebDriverWait wait = new WebDriverWait(driver, 10);

List<WebElement> rows = wait.until(ExpectedConditions
        .presenceOfAllElementsLocatedBy(By.cssSelector("tr[role=row]")));

for (WebElement row : rows) {
    List<WebElement> checkboxes = driver.findElements(By.cssSelector("input#chkSelect[type=checkBox]"));
    wait.until(ExpectedConditions.elementToBeClickable(checkboxes.get(0))).click();
    wait.until(ExpectedConditions.elementToBeClickable(checkboxes.get(1))).click();

}
0 голосов
/ 20 февраля 2020

Wait.until (ExpectedConditions.visibilityOfElementLocated (By.xpath ( "/ HTML / тело / DIV [1] / дела [2] / раздел [2] / раздел / дела / дела [2] / DIV / DIV / форма / DIV / DIV / DIV / DIV [2] / дел [1] / дела / дела [1] / дела [2] / стол / TBODY / тр [1] / тд [6] / вход "))); Wait.until (ExpectedConditions.elementToBeClickable (By.xpath ( "/ HTML / тело / DIV [1] / дела [2] / раздел [2] / раздел / дела / дела [2] / DIV / DIV / форма / DIV / DIV / DIV / DIV [2] / дел [1] / дел / дел [1] / дел [2] / стол / TBODY / тр [1] / тд [6] / вход "))) нажмите (). Wait.until (ExpectedConditions.visibilityOfElementLocated (By.xpath ( "/ HTML / тело / DIV [1] / дела [2] / раздел [2] / раздел / дела / дела [2] / DIV / DIV / форма / DIV / DIV / DIV / DIV [2] / дела [1] / дела / дела [1] / дела [2] / стол / TBODY / тр [2] / тд [6] / вход "))); Wait.until (ExpectedConditions.elementToBeClickable (By.xpath ( "/ HTML / тело / DIV [1] / дела [2] / раздел [2] / раздел / дела / дела [2] / DIV / DIV / форма / DIV / DIV / DIV / DIV [2] / дел [1] / дел / дел [1] / дел [2] / стол / TBODY / тр [2] / тд [6] / вход "))) нажмите ().

Я использовал xpath как этот, чтобы выбрать определенные флажки, но я не знаю, можем ли мы использовать xpath как этот или нет? Есть ли другой хороший способ написать xpath?

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