0

This is my html source:

<div class="col s12">
    <input type="checkbox" class="filled-in"
           d="corresp-checkbox" data-class="jrnlCorrRef" data-note-
           class="jrnlCorrAff" data-selector=".//*[@class='jrnlCorrRef']
    [not(@data-track='del')]" data-type="checkBoxComponent" data-
           validate="requiredField" data-save-type="setCorrespondingAuthor"
           data-check-field="jrnlEmail" autocomplete="off" autocorrect="off"
           autocapitalize="off" spellcheck="false">
    <label
            for="correspcheckbox" style="margin-
    top:10px" contenteditable="false">Corresponding:
    </label>
    <div class="input-field">
        <span class="text-line"
              type="text" contenteditable="true" data-selector="//*
    [@dataid=.//*
    [@data-ref-type='corresp'][not(@data-track='del')]/@data-rid]|.//*
    [@class='jrnlEmail']" data-class="jrnlEmail" data-
              type="htmlComponent"
              data-email="true" data-parent="jrnlAuthorGroup"></span>
        <label
                for="email" contenteditable="false">Email
        </label>
    </div>
</div>

absolute xpath from copy xpath receives click:

//[@id='compDivContent']/div/div[8]/div/div[2]/div[1]/div[5]/div/label

My own relative xpath throws error element not visible:

"//input[@class='filled-in']"
4
  • Please add what your code and what the error is being thrown in a proper way. Simple copy pasting the HTML/DOM is not gonna be helpful to anyone tryna debug. Commented Feb 9, 2018 at 7:07
  • @demouser123 i have updated now
    – Harri
    Commented Feb 9, 2018 at 7:16
  • @Harri Can you try using //label[@for='correspcheckbox'] xpath and update me same
    – NarendraR
    Commented Feb 9, 2018 at 8:50
  • @NarendraR NoSuchElementError: no such element: Unable to locate element: {"method":"xpath","selector":"//label[@for='correspcheckbox']"}
    – Harri
    Commented Feb 9, 2018 at 9:11

2 Answers 2

2

As the code isn't clear high level solution would be insert an explicit wait before the operation. And try locating the element. If it is located proceed as usual. If you are unable to locate or somehow not successful try using JavascriptExecutor. Providing a sample below:

JavascriptExecutor jse = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.id("checkbox_accept-terms"));
jse.executeScript("arguments[0].click();", element);
0

i can't see your code because you haven't included it with the question, however it looks like you are encountering a common issue with the selenium api where it is possible to discover an element but not be able to click it.

This can happen when a page is still loading or a syntax error in the page can cause it to load incorrectly. In this case it looks like some of the odd line wrapping within quoted data might cause parsing issues.

I would suggest loading the page in a browser and viewing the DOM to verify this content renders as you expect it to.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.