如何使用 Watin 单击 AutoCompleteExtender

发布于 2024-07-04 03:28:33 字数 362 浏览 10 评论 0原文

对于我的验收测试,我正在将文本写入自动完成扩展器中,并且需要单击填充的列表。

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

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

然后我尝试按标记名和值搜索列表:

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

但没有找到它,有人能够做我想做的事情吗?

For my acceptance testing I'm writing text into the auto complete extender and I need to click on the populated list.

In order to populate the list I have to use AppendText instead of TypeText, otherwise the textbox looses focus before the list is populated.

Now my problem is when I try to click on the populated list. I've tried searching the UL element and clicking on it; but it's not firing the click event on the list.

Then I tried to search the list by tagname and value:

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

but it's not finding it, has anyone been able to do what I'm trying to do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

桃气十足 2024-07-11 03:28:33

其较短版本是:

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

正则表达式将进行部分匹配,因此您不需要在任一侧指定 .* 并使用 string.Format。 然而,这假设lookupString不包含任何正则表达式特有的字符,它们需要被转义。

The shorter version of that is:

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

Regexs will do a partial match so you don't need to specify .* either side and use string.Format. This assumes however that the lookupString doesn't contain any characters special to Regexs, they'd need to be escaped.

枯叶蝶 2024-07-11 03:28:33

万一有人遇到同样的问题。 它适用于下一个代码:

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

In case someone has the same problem. It works with the next code:

string lookupString = "string in list";
Regex lookup = new Regex(string.Format(".*{0}.*", lookupString));
Element list = Browser.Element("li", Find.ByText(lookup));
list.MouseDown();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文