Selenium Web Driver пытается найти элемент в выпадающем списке

Я пытаюсь автоматизировать в Selenium Web Driver, используя C#, и я работаю с проблемой, где я пытаюсь выбрать элемент в раскрывающемся списке. Но это не обычный выпадающий список, и я не могу выбрать конкретный элемент из списка. Я могу открыть раскрывающийся список, но когда я пытаюсь отправить текст в поле поиска, он говорит: "элемент не виден". Я также пытался найти элемент в раскрывающемся списке, но до сих пор не могу найти его, чтобы найти вариант. Ниже мой код и HTML-код для выпадающего списка.

Любая помощь высоко ценится

var ChooseAsset = driver.FindElementById("uiAssetIdDdl_chosen");
            ChooseAsset.Click();
            var SelectAsset = driver.FindElement(By.XPath("//*[contains(., 'Airbus A300-603 [SN: AR-PL-241]')]"));
            SelectAsset.Click();

<ul class="chosen-results"><li class="active-result highlighted" data-option-array-index="1" style="">CFM International LEAP-1A26 [SN: ABC123]</li><li class="active-result" data-option-array-index="2" style="">Airbus A300-603 [SN: AR-PL-139]</li><li class="active-result" data-option-array-index="3" style="">Airbus A300-603 [SN: AR-PL-152]</li><li class="active-result" data-option-array-index="4" style="">Airbus A300-603 [SN: AR-PL-241]</li><li class="active-result" data-option-array-index="5" style="">Airbus A300-603 [SN: AR-PL-258]</li><li class="active-result" data-option-array-index="6" style="">Airbus A300-603 [SN: AR-PL-307]</li><li class="active-result" data-option-array-index="7" style="">Airbus A300-603 [SN: AR-PL-309]</li><li class="active-result" data-option-array-index="8" style="">Airbus A300-603 [SN: AR-PL-369]</li><li class="active-result" data-option-array-index="9" style="">Airbus A300-603 [SN: AR-PL-38]</li><li class="active-result" data-option-array-index="10" style="">Airbus A300-603 [SN: AR-PL-458]</li><li class="active-result" data-option-array-index="11" style="">Airbus A300-603 [SN: AR-PL-502]</li><li class="active-result" data-option-array-index="12" style="">Airbus A300-603 [SN: AR-PL-608]</li><li class="active-result" data-option-array-index="13" style="">Airbus A300-603 [SN: AR-PL-62]</li><li class="active-result" data-option-array-index="14" style="">Airbus A300-603 [SN: AR-PL-655]</li><li class="active-result" data-option-array-index="15" style="">Airbus A300-603 [SN: AR-PL-664]</li><li class="active-result" data-option-array-index="16" style="">Airbus A300-603 [SN: AR-PL-694]</li><li class="active-result" data-option-array-index="17" style="">Airbus A300-603 [SN: AR-PL-749]</li><li class="active-result" data-option-array-index="18" style="">Airbus A300-603 [SN: AR-PL-816]</li><li class="active-result" data-option-array-index="19" style="">Airbus A300-603 [SN: AR-PL-875]</li><li class="active-result" data-option-array-index="20" style="">Airbus A300-603 [SN: AR-PL-888]</li><li class="active-result" data-option-array-index="21" style="">Airbus A300-603 [SN: AR-PL-892]</li></ul>

2 ответа

Решение

Вы можете попробовать ниже xpath

*//li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')]*

или если он не работает, вы можете закрепить его через UL

var SelectAssets = driver.FindElements(By.XPath("//ul[@class="chosen-results"]/li[]"));

for(int i=0;i<SelectAssets.length;i++){
if(SelectAssets[i].getText()="Airbus A300-603 [SN: AR-PL-888")
SelectAssets[i].click();
break;
}

Попробуйте это xpaths

  1. Выбрать Airbus A300-603 [SN: AR-PL-892]

    //li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')]
    
  2. Выберите Airbus A300-603 [SN: AR-PL-875]

    //li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-875')]
    
Другие вопросы по тегам