是否可以获取作为参数传递的变量名称?
当你让我解释为什么我需要这个时,这是我的解释。我正在用硒建造一个测试用framweork。这是我需要作为参数传递的变量名称的示例。
我有一个带有字段的页面对象:
[FindsBy(How = How.CssSelector, Using = "input[name='sample']")]
private IWebElement SampleButton { get; set; }
我点击它就像:
Click(SampleButton, nameof(SampleButton));
以上是点击功能的主体:
public void Click(IWebElement element, string elementName)
{
element.Click();
Logger.Log("Click: '{0}'", elementName);
}
结果:点击了传递给函数的按钮,在日志文件中我有“Click:SampleButton”
现在我正在寻找如何更改点击功能,如下所示:
Click(SampleButton)
看起来像是:
public void Click(IWebElement element)
{
element.Click();
Logger.Log("Click: '{0}'", getNameOfVariableThatWasPassedToThisParameter(element));
}
getNameOfVariableThatWasPassedToThisParameter(element)
的预期结果为string = "SampleButton"
我正在使用像SendKeys(SampleInput, nameof(SampleInput), valueToSet)
之类的东西,它设置值并记录它的设置位置。所以我只想摆脱 nameof(SampleInput)
。我想减少需要传递给函数的变量数量。