2017-09-07 18 views
-1

私は自動化のためにテスト完了を使用しています。私は、クラスを作成します。コードで「共通」:ログインユーザのための「メイン」とクラスを呼び出す:私は他のクラスを作成しますテスト完了:ReferenceError Driver1が定義されていません

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(); 
} 

コードとの「共通」:

var Common = require("Common"); 

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

エラーは、実行後に表示されます。

にReferenceError

DRIVER1が定義されていない

この問題を解決するにはどうすればよいですか?ありがとう。

+0

'if-then'の' page.Wait(5000);は、いずれかの方法で発生するので、移動してください。 – JeffC

答えて

0

コードの先頭にブレークポイントを置き、ステップ実行すると、問題を見つけるのに役立ちます。

問題は、機能Read_Excel_Login()Driver1を宣言したし、その機能がスコープの外に出ると、あなたはそれが定義されていない機能Login()Driver1を参照することです。

私はDriver1Main()に定義し、次にRead_Excel_Login()にドライバインスタンスを返します。次にDriver1Login()に渡すことができます。

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) { ... } 

私はまた、代わりにDriver1ExcelDriver、より具体的には、ドライバの名前を変更しました。

私はTestCompleteで何かしたことがありますので、この構文はほとんど正しいと思います。

+0

私はあなたの提案で成功することができます。 –

+0

この(または任意の)回答があなたを助けたら、それをアップしてください。あなたの質問に答えた場合は、答えとしてそれを受け入れてください。 – JeffC

関連する問題