这是一个愚蠢的问题,但我开始使用 MS 编码 UI 测试。我想知道是否有一种方法可以使用 XPath 而不是默认匹配机制来查找页面元素?我想要做的是匹配父元素并以编程方式向下导航 DOM 树以获取我想要使用的元素。这可以使用 Selenium 轻松完成,但我不确定如何使用 Coded UI Tests 来完成。
谢谢
这是一个愚蠢的问题,但我开始使用 MS 编码 UI 测试。我想知道是否有一种方法可以使用 XPath 而不是默认匹配机制来查找页面元素?我想要做的是匹配父元素并以编程方式向下导航 DOM 树以获取我想要使用的元素。这可以使用 Selenium 轻松完成,但我不确定如何使用 Coded UI Tests 来完成。
谢谢
您应该能够xpath
使用UITestControlCollection
. 使用 CodedUI 的记录器进入顶级控件,然后使用GetChildren
导航您的方式。请记住,xpath
由于所有对象类型都相似,因此 CodedUI 的 API 不区分这些更改。
例子:
HtmlDocument doc = this.UIYourWindowName.UIYourDocumentName; // mapped control
doc.Find();
UITestControl toline = new UITestControl(doc);
toline.SearchProperties["Id"] = "to_d"; // use the id of the top most control
UITestControlCollection toline1 = toline.GetChildren(); // get the child objects
toline1 = toline1[0].GetChildren(); // xpath: \\ctrl[@id='to_d']\item[0]
toline1 = toline1[0].GetChildren(); // ctrl[]\item[0]\item[0]
// and so on...