测试完成:未定义ReferenceError Driver1

时间:2017-09-07 04:10:02

标签: testcomplete

我使用Test complete进行自动化。我创建了课程:" Common"代码:

function Read_Excel_Login(){
    var Driver1 = DDT.ExcelDriver("C:/Users/NVA/Downloads/leave.xls","login",true);
}

function Login()
{
    if( Driver1.Value(3)==2)
    {
        page = Aliases.browser.pageHrmtestSpsSymfonyWebIndexPhp2;
        page.Wait(5000);
    }
    else
    {
        page= Aliases.browser.pageHrmtestSpsSymfonyWebIndexPhp;
        page.Wait(5000);
    }

    page.contentDocument.Script.$("#txtUsername").val(Driver1.Value(0)).change();
    page.contentDocument.Script.$("#txtPassword").val(Driver1.Value(1)).change();
    page.contentDocument.Script.$("#btnLogin").click();
}

我创建了其他课程:" Main"登录用户和通话类:"普通"代码:

var Common = require("Common");

function Main()
{   
    Common.Read_Excel_Login();
    while(!Driver1.EOF())
    { 
        Common.Login();
        Driver1.Next();                      
    }
}

运行后出现错误:

  

的ReferenceError

     

未定义Driver1

如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:0)

如果您在代码的开头放置一个断点并逐步执行它,它可能会帮助您找到问题。

问题是您已在函数Driver1中声明Read_Excel_Login(),然后该函数超出范围,并在函数Driver1中引用Login()它未定义的地方。

我会在Driver1中定义Main(),然后让Read_Excel_Login()返回一个驱动程序实例。然后,您可以将Driver1传递给可以使用的Login()

function Read_Excel_Login()
{
    return DDT.ExcelDriver("C:/Users/NVA/Downloads/leave.xls", "login", true);
}

function Main()
{   
    var ExcelDriver = Common.Read_Excel_Login();
    while(!ExcelDriver.EOF())
    { 
        Common.Login(ExcelDriver);
        ExcelDriver.Next();
    }
}

function Login(ExcelDriver) { ... }

我还将驱动程序的名称更改为更具体,ExcelDriver而不是Driver1

自从我使用TestComplete做了一些事情以来已经很长时间了,所以我认为这种语法大多是正确的。