为什么我无法在我的设置中单击此可选选项?

时间:2016-02-04 16:30:04

标签: c# wpf ui-automation white

http://puu.sh/mVDoM/069787ca8d.png

我正在使用teststack white,我尝试使用:

ListViewRow presetter = p7window.Get<ListViewRow>(SearchCriteria.ByText("Presetter"));
presetter.Click();

TableRow presetter = p7window.Get<TableRow>(SearchCriteria.ByText("Presetter"));
presetter.Click();

ListItem presetter = p7window.Get<ListItem>(SearchCriteria.ByText("Presetter"));
presetter.Click();

我也尝试使用“Name row 1”和“row 1”作为参数中的字符串。

2 个答案:

答案 0 :(得分:0)

当您指定并调用它以按文本查找时,它表示“text”属性,而不是它可能包含具有该值的文本。 TableRow通常不具有text属性,而是使用“Value”“RowIndex”等内容。

此外,您应该知道元素在树中的位置,您可能必须将其传递给父控件。

List list = p7window.Get<List>(SearchCriteria.ByValue("Presetter"));
ListItem li = list.Get<ListItem>(SearchCriteria.ByValue("Presetter"));

答案 1 :(得分:0)

尝试获取 AutomationElement

***.GetElement(SearchCriteria.ByText("Presetter"));

如果它不为空,则通过 getClicablePoint()找到一个点并执行鼠标点击,例如 Mouse.Instance.Click()

如果任何SearachCriteria无法访问该元素 - 请尝试使用本机MS UI自动化:

  1. 获取最接近你的根控件。
  2. 从中获取Autoelement属性。
  3. 查找完整的子项列表,如 AutomationElement.FindAll(Treescrope.Descendals,PropertyCondition.TrueCondion) _
  4. 通过您需要的任何属性在Autoelements数组中查找元素。
  5. 从中获取调用模式并使用Invoke()