2016-08-01 4 views
1

現在、フォームを保存するときに値を保存し、この値をアサートした後、10個のフィールドを持つフォームがあります。これらのフィールドのそれぞれについて、関数を作成して変数に値を格納するか、より良い方法が必要ですか?Webdriver JS - 変数にsendKeysを保存して再利用

私の実際のコード:フォームが送信された後

var email = driver.findElement(By.name('email')); 
email.sendKeys('[email protected]'); 
email.getAttribute("value").then(function(email_text) { 
    var email = email_text; 
}); 

乾杯、 ラファエル

+0

あなたがセッションにいくつかのデータを保存し、特急のセッションを使用することができますし、あなたのプロジェクト –

+0

@MarioRozic例からどこにでもアクセスすることができますか? – RFtests

+0

変数に値を格納すると何が問題になりますか? –

答えて

0

私が正しい理解していれば、あなたはいくつかのフィールドを埋める必要があるように、プロセスが見えますが、それらの値とチェック値を覚えています。

このようなタスクの標準的な決定はありません。開発者によって異なります。

だから、私たちは私たちに必要な値がわからおよびマップの例のためにそれを保存することができます

{ 
'email':'[email protected]', 
'telephone':111222333 
} 

キー要素、値を見つけるための名前である - SENDKEYとcheckValue方法のために。

テストデータマップで動作する2つのメソッドを記述し、マップキーを使用して入力を入力し、値をサイクルでチェックします。

+0

たとえば、フォームに10個のフィールドがある場合、これらのフィールドの各sendKeysを格納するには、コードを参照してください(コードは長すぎます):https://gist.github.com/anonymous/8ad5ffbe2c2d134b1297f69e259c591a。たとえば、pythonを使用すると、 'email = driver.findElement(by_name( 'dog'))。sendKeys( 'tobby');'だけ使用できます。ノードを使用すると、これを行う簡単な方法はありますか? – RFtests

+0

サイクルの決定と入力値の表現をオブジェクトの配列として適用することができます。それはあなたのコードを減らすでしょう – Sabik

0

これを配列として使用しますか?

// you can represent each field as an object 
var fields = [ 
    { elementName: 'email', expectedText: '[email protected]' }, 
    { elementName: 'password', expectedText: 'bla bla bla' } 
]; 

// sendKeys to each field with the specified text 
fields.forEach(function(field) { 
    browser.driver.findElement(by.name(field.elementName)).sendKeys(field.expectedText); 
}); 

// to get all the field text (from promises) and store it as an array 
browser.controlFlow().execute(function() { 
    var textArray = []; 
    fields.forEach(function(field) { 
     browser.driver.findElement(by.name(field.elementName)).getAttribute('value').then(function(actualText) { 
      textArray.push({elementName: field.elementName, actualText: actualText}); 
     }); 
    }); 
    return textArray; 
}).then(function(storedTextArray) { 
    // do something with the stored text array here 
}); 
+0

たとえば、私のフォームが10のフィールドを持っている場合、これらのフィールドの各sendKeysを保存するコードを参照してください(コードはこれを行うには長すぎます):https://gist.github.com/anonymous/8ad5ffbe2c2d134b1297f69e259c591a。たとえば、pythonを使用すると、 'email = driver.findElement(by_name( 'dog'))。sendKeys( 'tobby');'だけ使用できます。ノードを使用すると、これを行う簡単な方法はありますか? – RFtests

関連する問題