Unable to locate element for LABEL with the XPath expression

35,857

Solution 1

You should use the below XPATH

 //*[@id='update_patient_profile']//div[2]/label[.='Patient's Name']

Solution 2

//form[@id='update_patient_profile']/label[text()='Patient's Name']

As the label tag is also a child of form tag.

Solution 3

One can also use text() instead of dot ".". To verify the label text one can use this path too

//form[@id='update_patient_profile']//div[2]/label[text()='Patient's Name']
Share:
35,857
pratik
Author by

pratik

Updated on August 30, 2020

Comments

  • pratik
    pratik over 3 years

    I am trying the below xpath for Label, but I'm not able to locate the element.

    driver.findElement(By.xpath("//div[label[contains(text(),'Patient's Name']]")).isEnabled();
    

    XPath: .//*[@id='update_patient_profile']/div/div[1]/label ---Taken from FirePath.

    Below is the HTML source for the field.

    <form id="update_patient_profile" action="/subscriber/" method="post" name="update_patient_profile"> 
      <div class="subscriberAddPatient"> 
        <div class="formData nameInputs"> 
      <label for="first_name">Patient's Name</label>
      <input id="first_name" class="left nameRule" type="text" onblur="resetTxtAdd($(this))" onfocus="emptyFieldAdd($(this))" onclick="emptyFieldAdd($(this))" name="first_name" value="First Name" maxlength="24"/>
    

    Can anyone suggest me the correct XPath for the Label.