Selenium Web Driver试图在下拉列表中查找项目

时间:2017-10-11 10:56:06

标签: c# visual-studio google-chrome selenium selenium-webdriver

我正在尝试使用C#在Selenium Web Driver中自动化,并且我正在尝试选择下拉框中的项目。但这不是正常的下拉列表,我似乎无法从列表中选择一个特定的项目。我可以打开下拉菜单但是当我尝试将文本发送到搜索字段时,它会显示“元素不可见”。我也尝试在下拉列表中找到该项目,但仍无法找到该选项。下面是我的代码和下拉列表的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 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

试试这个xpaths

  1. 选择空中客车A300-603 [SN:AR-PL-892]

    //li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')]
    
  2. 选择空中客车A300-603 [SN:AR-PL-875]

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