Спасибо за помощь заранее.Новичок в Selenium / Chrome, и у меня был хороший опыт, пока я не выбрал конкретный сценарий.
У меня есть модал, содержащий 5 полей (3 раскрывающихся списка и UL с 2 LI)
Каждый LI содержит метку и флажок ввода.
Все раскрывающиеся списки имеют идентификатор, поэтому им было легко манипулировать с помощью FindElement(By.Id("ID")).SelectText("TEXT");
Однако у Ли внутри Ула их нет, и я получал исключения NoSuchElementException с каждой попыткойнайдите их.
<ul id="CertificatesToAdd" name="CertificatesToAdd" class="nav nav-list
checkbox-list add-certificate-required" data-trigger="manual" data- placement="top">
<li>
<label class="checkbox" style="font-weight:normal !important;">
<input type="checkbox" class="add-certificate-checkbox"
value="171">
Certificate of Registration
</label>
</li>
<li>
<label class="checkbox" style="font-weight:normal !important;">
<input type="checkbox" class="add-certificate-checkbox"
value="172">
Collection Agency License
</label>
</li>
</ul>
Я испробовал обе строки FindElement под todo и обе вернули OpenQA.Selenium.NoSuchElementException: Unable to locate element
new SelectElement(BaseTest.Driver.FindElement(By.Id("AddCertificateCountry")))
.SelectByText("Canada");
new SelectElement(BaseTest.Driver.FindElement(By.Id("AddCertificateState")))
.SelectByText("Alberta");
//TODO: correct input value for checkbox
new SelectElement(BaseTest.Driver.FindElement(By.CssSelector(
"#CertificateToAdd>li:nth-child(2)"))).SelectByValue("172");
new SelectElement(BaseTest.Driver.FindElement(By.XPath(
"//*[@id="CertificatesToAdd"]/li[2]/label/input"))).SelectByValue("172");
Любые идеи будут полезны и оценены.