如何在没有IF的情况下从字符串结果更改方法

时间:2012-07-03 13:22:18

标签: c# ranorex

我正在使用Ranorex软件在C#中进行测试自动化。 我从XML文件和方法中获取了一个按钮的名称:

string deviceName = device.SelectSingleNode("./ButtonInTTS").InnerText.Replace(" ", "");

我得到一个字符串,其名称告诉我在我的应用程序中单击哪个按钮,然后有这个方法: 。repo.TiTouchScreenApp.ToolbarListBox 按钮 .DoubleClick();

事实上在Ranorex中你有所有按钮的库,我需要将Button的名称更改为deviceName的结果。 例如,如果deviceName ==“Automation”,它会这样做 repo.TiTouchScreenApp.ToolbarListBox的自动化 .DoubleClick();

deviceName ==“Temperature”

repo.TiTouchScreenApp.ToolbarListBox的温度 .DoubleClick();

但我想在没有IF的情况下这样做。因为我有很多按钮,我不想要:

if(deviceName == "Automation"){     
    repo.TiTouchScreenApp.ToolbarListBox.Automation.DoubleClick();
} else if(deviceName == "Temperature") {
    repo.TiTouchScreenApp.ToolbarListBox.Temperature.DoubleClick();
} etc etc...

你看到了解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果repo.TiTouchScreenApp.ToolbarListBox返回一个控件列表,例如:按钮然后做这样的事情:

var button = repo.TiTouchScreenApp.ToolbarListBox.Buttons.Where(b => b.Name == deviceName).FirstOrDefault();

if(button != null)
{
  button.DoubleClick();
}