我试图在另一个函数中使用一个函数(称之为A)(称之为B)(我定义了这两个函数)。为此,我在B函数的开头定义了一些A参数,然后我使用do.call调用了A.但是,功能A无法识别这些参数,即使它们已被定义。发生了什么事?
背景信息:我试图运行一个简单系统的模拟。为此,我将问题分解为各种子功能:一个(genpar)生成随机参数供模拟使用,另一个(indeffbasic)从参数值映射到变量值。然后我将这两个函数组合在一个名为indeff的新函数中。在最后一步发生错误。我已经四处寻找,但无法找到任何解决方案。如果答案很明显,请原谅我。请参阅以下代码:
public class Header
{
[FindsBy(How = How.Name, Using = "user_profile")]
public IWebElement BtnUserProfile{ get; set; }
[FindsBy(How = How.ClassName, Using = "logout_button")]
public IWebElement BtnLogout { get; set; }
public void Logout()
{
BtnLogout.Click();
}
}
public class LoginPage
{
[FindsBy(How = How.Name, Using = "username")]
public IWebElement TxtbxUserName { get; set; }
[FindsBy(How = How.Name, Using = "password")]
public IWebElement TxtbxPassword { get; set; }
[FindsBy(How = How.ClassName, Using = "button")]
public IWebElement BtnSignIn { get; set; }
public string GoTO()
{
Driver.Navigate().GoToUrl(LoginURL);
}
public void Login(string username, string password)
{
TxtbxUserName.SendKeys(username);
TxtbxPassword.SendKeys(password);
BtnSignIn.Click();
}
public bool IsAt()
{
return Driver.Url == LoginURL;
}
}
答案 0 :(得分:1)
在你的行
return(do.call(indeffbasic(), parameters))
do.call
的第一个参数应该是函数(或函数的名称),而不是函数调用。所以用
return(do.call(indeffbasic, parameters))
或只是
do.call(indeffbasic, parameters)
因为函数中最后一个表达式的值是返回值。