如何使用Watin单击AutoCompleteExtender

时间:2020-03-05 18:49:42  来源:igfitidea点击:

为了进行验收测试,我正在将文本写入自动完成扩展器,并且需要单击填充列表。

为了填充列表,我必须使用AppendText而不是TypeText,否则在填充列表之前,文本框会失去焦点。

现在我的问题是当我尝试单击填充列表时。我尝试搜索UL元素并单击它;但它不会触发列表中的click事件。

然后,我尝试通过标记名和值搜索列表:

Element element = Browser.Element(Find.By("tagname", "li") && Find.ByValue("lookupString"));

但找不到,有人能做我想做的事吗?

解决方案

回答

万一有人有同样的问题。它可以与下一个代码一起使用:

string lookupString = "string in list";
Regex lookup = new Regex(string.Format(".*{0}.*", lookupString));
Element list = Browser.Element("li", Find.ByText(lookup));
list.MouseDown();

回答

较短的版本是:

string lookupString = "string in list";
Element list = Browser.Element("li", Find.ByText(new Regex(lookupString)));
list.MouseDown();

正则表达式将进行部分匹配,因此我们无需在任何一侧都指定。*并使用string.Format。但是,这假定lookupString不包含Regexs专用的任何字符,需要对其进行转义。