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

В соответствии со сценарием, если флажок уже установлен, мне нужно печатать только текст, а если флажок не установлен, то мне нужно нажать на флажок.

//-Check sandbox test client checkbox is already checked or not if not then tick on checkbox
boolean sandboxClientCheckbox = driver.findElement(By.xpath("//div[@class='eplChkBoxWrapper']//label[@id='acChkSandboxClientForLbl']")).isSelected();       
System.out.println("Check checkbox value " +sandboxClientCheckbox);
if(sandboxClientCheckbox == true)   {
    Utils.pauseTestExecution(3);
    System.out.println("Checkbox is already checked  ");            
} else {
            driver.findElement(By.id("acChkSandboxClientForLbl")).click();
}  

Когда я печатаю значение флажка, то это показывает ложь. Но в первый раз это всегда проверяется

Значения HTML для флажка:

<div class="eplChkBoxWrapper">==$0
 <input type="checkbox" id="acChkSandboxClient" class="eplChkBox" checked>
<label id="acChkSandboxClientForLbl" for="acChkSandboxClient">
::after
</label>

Может кто-нибудь помочь мне, как я могу проверить, этот флажок уже установлен или нет во время выполнения. Я поделился DOM-элементами enter code here

Ответы [ 6 ]

0 голосов
/ 08 мая 2018

Вы пробовали element.isEnabled()? если это так, попробуйте проверить атрибут с помощью функции getAttribute. Я думаю, что он исчезнет, ​​когда флажок снят.

0 голосов
/ 07 мая 2018

У меня была похожая проблема давным-давно, и я использовал этот код, просто чтобы «исправить» имеющуюся у меня проблему, попробуйте, это не элегантное решение, но в крайнем случае, проверьте это:

String selectedCB = "";
String jsScript = "var selchbox = [];"
    +"var inpfields = document.getElementsByName('city[]');"
    +"var nr_inpfields = inpfields.length;"
    +"for(var i=0; i<nr_inpfields; i++) {"
    +"    if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(inpfields[i].value);"
    +"  }"
    +"var selected;"
    +"selected = selchbox.join('#') + \"#\";"
    +"return selected;";
JavascriptExecutor executor = (JavascriptExecutor)driver;
selectedCB = (String) executor.executeScript(jsScript);
String[] selectedB = selectedCB.split("#");
0 голосов
/ 07 мая 2018

Найти элемент:

WebElement chk = driver.findElement(By.id("chkElement1"))

, поэтому этот код охватывает все возможности и проверьте, проверены ли уже.

public void checkItem(boolean flgON) {
        boolean flgState = Boolean.valueOf(chk.getAttribute("checked"));

// if state is checked and want to un-check (flg == false)//
        if (flgState && (!flgON)) {
            switchSystemNotifications.click();
        }
// if state is notchecked and want check (flg == true)//
        if (!flgState && (flgON)) {
            switchSystemNotifications.click();
        }
}
0 голосов
/ 07 мая 2018

один из методов, присутствующих в интерфейсе webelement, мы можем проверить, используя его. имя метода isSelected (). его тип возвращаемого значения - boolean. если оно истинно, чем выбрано. если оно ложно, мы можем проверить с помощью click ().

0 голосов
/ 07 мая 2018

Чтобы проверить, если нужный флажок уже установлен, и напечатать только текст, или же, если флажок не установлен, затем, чтобы установить флажок, вы можете использовать следующий блок кода:

if(driver.findElements(By.xpath("//div[@class='eplChkBoxWrapper']/input[@checked]")).size() != 0)
{
    System.out.println("Checkbox is already checked");
    // do any other work
}
else
{
    driver.findElement(By.xpath("//div[@class='eplChkBoxWrapper']/label[@for='acChkSandboxClient']")).click();
    // do any other work
}
0 голосов
/ 07 мая 2018
if($("#check").prop('checked') == true){
do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...