我正在对在 sharepoint 中开发的应用程序使用 CodedUI 测试。问题是它不能在不同的环境中工作。所以我必须为每个环境重新记录测试,这很麻烦并且容易出错。
经过一番调查,事实证明,为服务器生成的 clientId 在每个环境中的 webpart 控件中都不同(即使页面中的所有内容都完全相同——masterpage、pagelayout、webparts)。
为了解决这个问题(几乎),我想编辑 SearchPropertyExpressions 以仅使用带有“包含”运算符的 clientID 的最后一段。如果您在 Designer.cs 中手动编辑生成的代码,这将非常有效。
我的问题是,有没有简单而优雅的方法来自动化这个?
到目前为止,这是我尝试过的:我用自己的函数替换了索引器设置器 PropertyExpressionCollection 类。我使用此函数来检查正在设置的值并使用字符串“ctl”更改值并将其替换为字符串的最后一段(例如将“ctl0123_textbox1”替换为“textbox1”),最后使用包含运算符。它工作正常。但是它在过滤掉输入时是不分青红皂白的——它不关心它是过滤器还是搜索,它甚至不知道它属于什么类型的控件。这种方法确实很hacky。