Как установить несколько флажков в веб-драйвере селена? - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь установить несколько флажков в таблице с помощью чтения данных из Excel, он действительно может читать данные из Excel и находить флажок, но не проверяет / не устанавливает флажок.ТекущаяPrecuationsChk.click ();не работает и не показывает никаких исключений (пропускает выполнение строки), может кто-нибудь объяснить мне, почему он не проверяет / не нажимает флажок?Ниже мой HTML-код:

<table id="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01">
  <tbody>
    <tr>
     <td>
    <input id="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_0"
 type="checkbox"
     name="ctl00$ContentPlaceHolder1$ctl04$cbl_CCPOP01_01$0" 
value=" Universal    ">
<label for="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_0"> Universal   </label></td>
<td><input id="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_1" 
type="checkbox" 
name="ctl00$ContentPlaceHolder1$ctl04$cbl_CCPOP01_01$1"
 value=" Aspiration  ">
<label for="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_1"> Aspiration  </label></td>
    <td><input id="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_2" 
type="checkbox" name="ctl00$ContentPlaceHolder1$ctl04$cbl_CCPOP01_01$2" 
value=" Respiratory ">
<label for="ContentPlaceHolder1_ctl04_cbl_CCPOP01_01_2"> Respiratory </label></td>
    </tr>
    </tbody>

Я пробовал следующий код:

String valueOngoingPrecuations = data.getOngoingPrecuations().get(rowCnt);//data reading from excel(Aspiration,Universal)
            List<WebElement> ongoingPrecuations = driver.findElements(By.xpath("//input[@type='checkbox']"));
            List<String> ongoingPrecuationsList = new ArrayList<String>(
                    Arrays.asList(valueOngoingPrecuations.split(",")));
            for (String ongoingPrecuationsCheck : ongoingPrecuationsList) {
                for (WebElement ongoingPrecuationsChk : ongoingPrecuations) {
                    if (ongoingPrecuationsChk.getAttribute("value").equalsIgnoreCase(ongoingPrecuationsCheck)) {
                        ongoingPrecuationsChk.click();

                    }
                }
            }

1 Ответ

0 голосов
/ 05 июня 2018

Используйте xpath на основе идентификатора tbody, как показано ниже.

//tbody[contains(@id,'tableBodyId')]//input

Это даст вам список флажков.Тогда используйте

WebElement btn = driver.findElement(By.xpath("xpath"));

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