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

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

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

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

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

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

有帮助吗?

解决方案

其较短版本是:

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

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

其他提示

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

string lookupString = "string in list";
Regex lookup = new Regex(string.Format(".*{0}.*", lookupString));
Element list = Browser.Element("li", Find.ByText(lookup));
list.MouseDown();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top