如何处理页面对象模式中 HTMLControl 内部文本的变化?

How do I handle variations in HTMLControl Inner Text in a Page Object Pattern?

这里有一些关于我的项目规格的背景信息:

在我的地图中,我有一些控件,例如组合框,如果选择了某个工作流程,它的 InnerText 会发生变化。我需要构建断言和验证语句以确保 InnerText 对于所选工作流是正确的。这不是问题。但是,我不想为每个 InnerText 更改定义一个新变量(有很多)。

有什么方法可以解释页面对象模式中的 InnerText 变体,而不必为每个变体编写一个新变量?

这是地图条目的示例:

        public HtmlComboBox NextActionControlDropDownList()
    {
        var NextActionControlDropDownList = new PropertyExpressionCollection {
            new PropertyExpression(HtmlComboBox.PropertyNames.Id, "MEDCHARTContent_EmmpsContent_nextActionControl_ActionDropDownList", PropertyExpressionOperator.EqualTo)
        };
        return Window.Find<HtmlComboBox>(NextActionControlDropDownList);
    }

这是基本控件定义。也可以是这样的:

        public HtmlComboBox NextActionControlARFormalComplReview()
    {
        var NextActionControlARFormalComplReview = new PropertyExpressionCollection {
            new PropertyExpression(HtmlComboBox.PropertyNames.Id, "MEDCHARTContent_EmmpsContent_nextActionControl_ActionDropDownList", PropertyExpressionOperator.EqualTo),
            new PropertyExpression(HtmlComboBox.PropertyNames.InnerText, "--Select Action-- Return to USARC ", PropertyExpressionOperator.EqualTo)
        };
        return Window.Find<HtmlComboBox>(NextActionControlARFormalComplReview);
    }

到目前为止我的想法是制作另一张地图并继承它?但这并不能解决我最初的单个控件变量太多的问题。我看不出 If 语句有何帮助,因为需要为框架定义它才能找到控件。也许我可以将不同的值存储在一个集合中,并有一个参数键值来访问它们……但这似乎我会 运行 陷入很多问题。

如果您尝试查看 PropertyExpressionOperator 下的方法,您会看到名为 Contains.

的内容
new PropertyExpression(HtmlComboBox.PropertyNames.InnerText, "--Select Action--", PropertyExpressionOperator.Contains)