Как установить 3 флажка при значении в селене Java - PullRequest
0 голосов
/ 24 мая 2018

У меня есть 3 флажка с ID как id1, id2, id3 и имя как name1, name2, name3.

<table id="ContentPlaceHolder1_cblType">
  <tbody>
    <tr>
      <td>
        <input id="ContentPlaceHolder1_cblType_0" type="checkbox"
               name="ctl00$ContentPlaceHolder1$cblType$0" value="Clinician">
        <label for="ContentPlaceHolder1_cblType_0">Clinician</label>
      </td>
      <td>
        <input id="ContentPlaceHolder1_cblType_1" type="checkbox" 
               name="ctl00$ContentPlaceHolder1$cblType$1" value="Administration">
        <label for="ContentPlaceHolder1_cblType_1">Administration</label>
      </td>
      <td>
       <input id="ContentPlaceHolder1_cblType_2" type="checkbox" 
              name="ctl00$ContentPlaceHolder1$cblType$2" value="Therapist">
       <label for="ContentPlaceHolder1_cblType_2">Therapist</label>
      </td>
    </tr>
  </tbody>
</table>

Мне нужно проверить его при получении значения из Excel.

data.getEmpType().get(rowCnt)

С помощью приведенного выше кода я получу значение из Excel.Как это сделать?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018
String ExcelValue= "data from excel";

**/*Create a list using common attributes of all three check boxes */**

List< WebElement> CB=driver.findElements(By.xpath("\\input[starts-with(@id,'ContentPlaceHolder1') AND @type='checkbox']"));   

**/*Store size of List created in CB_size(as per your data is should be three */**

int CB_size=CB.size(); 

**/*below loop will execute for all three check boxes one by one and with which so ever your value from excel matches, it click and come out of the loop */**

for (int i = 0; i < CB_size; i++) 

{ 

if(CB.get(i).getAttribute("value").equals(ExcelValue))

{ 

CB.get(i).click(); 

break;

} 

}
0 голосов
/ 24 мая 2018

Сначала возьмите строковое значение из листа Excel.Затем соберите все или необходимые флажки.Установите флажки и проверьте соответствие с требуемым значением, полученным из Excel.

String requiredValue= "from excel file";

List<WebElement> checkBoxes=oWebDriver
    .findElements(By.cssSelector("input[id^='ContentPlaceHolder1'][type='checkbox']"));

for (int i = 0; i < checkBoxes.size(); i++) {

    if(checkBoxes.get(i).getAttribute("value").equals(requiredValue)){
        checkBoxes.get(i).click();
        break;
    }
}

Or use more straight way through Xpath:

String excelValue = "from excel file";
String xpathExp = String.format(
         "//table[@id='ContentPlaceHolder1_cblType']" + 
         "//td[label[text()='%s']]/input", excelValue );

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