asp.net RadioButton is display false always for selenium

1

i have a UI as follows and im trying to automate this.

enter image description here

my html content is as follows:

<div class="medium-5 columns tableheading-td">
  <ul id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers" class="assessment-main-layout tabled-list" onchange="ChangeTextColorForSelectedRadio(this);">
    <li>
      <input id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0" type="radio" name="ctl00$ctl00$ContentPlaceHolder1$QuetionListPlaceHolder$BigFiftyPersonalityQuestion1$BigFiftyPersonalityQuestionItem1221754$rdbListAnswers"
        value="0">
      <label for="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0"> </label>
    </li>
    <li>
      <input id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_1" type="radio" name="ctl00$ctl00$ContentPlaceHolder1$QuetionListPlaceHolder$BigFiftyPersonalityQuestion1$BigFiftyPersonalityQuestionItem1221754$rdbListAnswers"
        value="1">
      <label for="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_1"> </label>
    </li>
    <li>
      <input id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_2" type="radio" name="ctl00$ctl00$ContentPlaceHolder1$QuetionListPlaceHolder$BigFiftyPersonalityQuestion1$BigFiftyPersonalityQuestionItem1221754$rdbListAnswers"
        value="2" style="">
      <label for="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_2"> </label>
    </li>
    <li>
      <input id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_3" type="radio" name="ctl00$ctl00$ContentPlaceHolder1$QuetionListPlaceHolder$BigFiftyPersonalityQuestion1$BigFiftyPersonalityQuestionItem1221754$rdbListAnswers"
        value="3">
      <label for="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_3"> </label>
    </li>
    <li>
      <input id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_4" type="radio" name="ctl00$ctl00$ContentPlaceHolder1$QuetionListPlaceHolder$BigFiftyPersonalityQuestion1$BigFiftyPersonalityQuestionItem1221754$rdbListAnswers"
        value="4">
      <label for="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_4"> </label>
    </li>
  </ul>
</div>

im trying to click my radio buttons as follows:

IWebElement webElement= CommonProperties.driver.FindElement(By.Id("ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_2"));
webElement.ClickElement();

but it says element is display false. What is he reason for this and how can i fix this? enter image description here

i have tried with xpath:

 IWebElement webElement= CommonProperties.driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0']"));

(having two xpath for radio button and label. even though getting same issue.

//*[@id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0"]

//*[@id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers"]/li[1]/label

OpenQA.Selenium.ElementNotVisibleException HResult=0x80131500
Message=element not visible (Session info: chrome=72.0.3626.109)
(Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.10586 x86_64) Source=WebDriver

StackTrace: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary2 parameters) at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary2 parameters) at OpenQA.Selenium.Remote.RemoteWebElement.Click() at SeleniumBL.SeleniumSetMethods.ClickElement(IWebElement element) in D:\SourceControl\Test\Test \SeleniumHR\SeleniumHR\SeleniumBL\SeleniumSetMethods.cs:line 53 at SeleniumHR.Models.Assesment.BigFiftyAssesment.AssesmentPlay() in D:\SourceControl\Test\Test \SeleniumHR\SeleniumHR\SeleniumHR\Models\Assesment\BigFiftyAssesment.cs:line 47 at SeleniumHR.Models.AssesmentBase.AssesmentStart() in D:\SourceControl\Test\Test \SeleniumHR\SeleniumHR\SeleniumHR\Models\Assesment\AssesmentBase.cs:line 216 at SeleniumHR.Models.Assesment.BigFiftyAssesment.ExecuteAssesment() in D:\SourceControl\Test\Test \SeleniumHR\SeleniumHR\SeleniumHRM\Models\Assesment\BigFiftyAssesment.cs:line 24 at SeleniumHR.Models.Assesment.AssesmentFactory.AssesmentPlay(String AssesmentType) in D:\SourceControl\Test\Test \SeleniumHRM\SeleniumHR\SeleniumHR\Models\Assesment\AssesmentFactory.cs:line 48 at SeleniumHRM.Program.Main(String[] args) in D:\SourceControl\Test\Test \SeleniumHR\SeleniumHR\SeleniumHR\Program.cs:line 49

Nuget i have used as follows: enter image description here

c#
asp.net
selenium
selenium-webdriver
asked on Stack Overflow Feb 22, 2019 by DevT • edited Feb 22, 2019 by DevT

3 Answers

1
exception details : element not visible (Session info: chrome=72.0.3626.109) (Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.10586 x86_64)

This shows that you are using older version of chromedriver=2.37.544315 which is not compatible with chrome version 72. You need to upgrade your chrome driver to become compatible.I believe this will resolve your problem.

Please see the following link.

answered on Stack Overflow Feb 22, 2019 by KunduK • edited Feb 22, 2019 by KunduK
1

Can you try to use visibilityOfElementLocated this to wait element before click

WebDriverWait wait = new WebDriverWait(driver, 10);
var clickableElement = wait.Until(ExpectedConditions.visibilityOfElementLocated(By.XPath("//*[@id='ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0']")));
answered on Stack Overflow Feb 22, 2019 by Mr.Kim • edited Feb 22, 2019 by Mr.Kim
0

I was able to find out my problem. According to style classes radio button is disabled. therefore its always display false. I was able to click on radio button using click on the related label text. I did it as follows

 // get lable for selected radio button
IWebElement radioButtonSelectedLabel = CommonProperties.driver.FindElement(By.CssSelector("label[for='ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0']"));
// click on the label
radioButtonSelectedLabel.ClickElement();
answered on Stack Overflow Feb 25, 2019 by DevT

User contributions licensed under CC BY-SA 3.0