我正在尝试使用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>
答案 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
选择空中客车A300-603 [SN:AR-PL-892]
//li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-888')]
选择空中客车A300-603 [SN:AR-PL-875]
//li[@class='active-result'][contains(text(),'Airbus A300-603 [SN: AR-PL-875')]