У меня есть следующий пользовательский интерфейс, и я пытаюсь автоматизировать это.
мой HTML-контент выглядит следующим образом:
<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>
Я пытаюсь щелкнуть мои радиокнопки следующим образом:
IWebElement webElement= CommonProperties.driver.FindElement(By.Id("ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_2"));
webElement.ClickElement();
, но он говорит, что элемент отображает false.Какова причина этого и как я могу это исправить?
я пробовал с xpath:
IWebElement webElement= CommonProperties.driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0']"));
(имея два xpath для переключателя и метки. Даже при получении той же проблемы.
//*[@id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers_0"]
//*[@id="ContentPlaceHolder1_QuetionListPlaceHolder_BigFiftyPersonalityQuestion1_BigFiftyPersonalityQuestionItem1221754_rdbListAnswers"]/li[1]/label
OpenQA.Selenium.ElementNotVisibleException HResult = 0x80131500
Message = элемент не виден (информация Session: хром = 72.0.3626.109)
(Информация о Driver: chromedriver = 2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),платформа = Windows NT 10.0.10586 x86_64) Source = WebDriver
StackTrace: в OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError (Response errorResponse) в OpenQA.Selenium.Remote.RemoteExecuri (RemotionWeb)1034 * 2 параметра) в OpenQA.Selenium.Remote.RemoteWebElement.Click () в SeleniumBL.SeleniumSetMethods.ClickElement (элемент IWebElement) в D: \ SourceControl \ Test \ Test \ SeleniumHR \ SeleniumHR \ SeleniumSLSeleniumHR.Models.Assesment.BigFiftyAssesment.AssesmentPlay () в D: \ SourceControl \ Test \ Test \ SeleniumHR \ SeleniumHR \ SeleniumHR \ Models \ Assesment \ BigFiftyAssesment.cs: строка 47 в SeleniumHR.Models.AssesmentBase.AssesmentStart () в D: \ SourceControl \ Test \ Test \ SeleniumHR \ SeleniumHR \ SeleniumHR \ Models \ Assesment \ AssesB.в SeleniumHR.Models.Assesment.BigFiftyAssesment.ExecuteAssesment () в D: \ SourceControl \ Test \ Test \ SeleniumHR \ SeleniumHR \ SeleniumHRM \ Models \ Assesment \ BigFiftyAssesment.cs: строка 24 в SeleniumHR.ModelsAsactFasementSaSensementAssesingSenseSaSensementAssesingSenseSaSensementAssesingSenseSaSmentSense для Asses (AssetSensement Asses St.AssesmentType) в D: \ SourceControl \ Test \ Test \ SeleniumHRM \ SeleniumHR \ SeleniumHR \ Models \ Assesment \ AssesmentFactory.cs: строка 48 в SeleniumHRM.Program.Main (String [] args) в D: \ SourceControl \ Test \ Test \ TestSeleniumHR \ SeleniumHR \ SeleniumHR \ Program.cs: строка 49
Nuget я использовал следующим образом: