i have a UI as follows and im trying to automate this.
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?
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=WebDriverStackTrace: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary
2 parameters) at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary
2 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
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.
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']")));
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();
User contributions licensed under CC BY-SA 3.0