C# 单击下拉列表中的列表项

C# 单击下拉列表中的列表项,c#,visual-studio-2013,coded-ui-tests,C#,Visual Studio 2013,Coded Ui Tests,我在与自定义下拉控件交互时遇到问题。它可以正常工作前6次,但之后,由于屏幕的大小,它无法再找到并单击下拉控件中的选项,返回异常-无法单击隐藏控件。我试着输入一个itemField.DrawHighlight();在我正在寻找的控件上,它找到了它,但是它无法单击它。我还尝试向下滚动,但似乎不起作用 bool addItemCheck = false; int scrollCheck = 0; while (Check == false) { var addItem= new HtmlBut

我在与自定义下拉控件交互时遇到问题。它可以正常工作前6次,但之后,由于屏幕的大小,它无法再找到并单击下拉控件中的选项,返回异常-无法单击隐藏控件。我试着输入一个itemField.DrawHighlight();在我正在寻找的控件上,它找到了它,但是它无法单击它。我还尝试向下滚动,但似乎不起作用

bool addItemCheck = false;
int scrollCheck = 0;
while (Check == false)
{
    var addItem= new HtmlButton(window);
    addItem.SearchProperties.Add(HtmlButton.PropertyNames.Id, "add-new-item");
    Mouse.Click(addItem);

    scrollCheck = scrollCheck + 1;
    if (scrollCheck > 6)
    {
        Mouse.MoveScrollWheel(window, -100);
    }

    var itemDropDown = new HtmlSpan(window);
    itemDropDown .SearchProperties.Add(HtmlSpan.PropertyNames.Class, "item-dropdown");
    itemDropDown .SearchProperties.Add(HtmlSpan.PropertyNames.InnerText, "Select an Item");
    Mouse.Click(itemDropDown );

    addItemCheck = itemDropDown.Exists;
}

bool itemBoxCheck = false;
HtmlCustom itemBox = null;
while (itemBoxCheck == false)
{                                                                             
    itemBox = new HtmlCustom(window);                                         
    itemBox.SearchProperties.Add(HtmlCustom.PropertyNames.Id, "item-listbox");

    var itemField = new HtmlCustom(itemBox);                                  
    itemField .SearchProperties.Add(HtmlCustom.PropertyNames.InnerText, item);
    Mouse.Click(itemField);                                                   

    itemBoxCheck = itemBox.Exists;                                            
}                                                                             

我真的很感激任何帮助。谢谢。

尝试在控件上调用方法InsureClickable(),然后再尝试单击它

例如:

itemDropDown.EnsureClickable();
 Mouse.Click(itemDropDown);
编辑: 如果这不起作用,你将不得不向下滚动到该项目

尝试使用:

 Mouse.MoveScrollWheel()

如果这也不起作用,您必须映射滚动控件并单击它。

您好,我很感谢@barakcaf的回答。恐怕不行,我试过:
var itemField=new-HtmlCustom(itemBox)
itemField.SearchProperties.Add(HtmlCustom.PropertyNames.InnerText,项目)
itemField.EnsureClickable()
鼠标。单击(项目字段)
它执行相同的行为并返回异常。再次感谢你的帮助。哇,真是太遗憾了,你是怎么在这里断线的?我已经编辑了答案-希望它能起作用-不要羞于投票:)