2016-08-01 3 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 메소드.

테스트 데이터 맵과 함께 작동하는 두 가지 메소드를 작성하고 맵 키를 사용하여 입력을 채우고 값을 주기적으로 점검해야합니다.

+0

예를 들어, 내 양식에 10 개의 필드가있는 경우이 필드의 각 sendKeys를 저장하려면 코드가 너무 깁니다 (코드가 너무 길어서). https://gist.github.com/anonymous/8ad5ffbe2c2d134b1297f69e259c591a. 예를 들어 파이썬을 사용하면'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. 예를 들어 파이썬을 사용하면'email = driver.findElement (by_name ('dog')). sendKeys ('tobby');'를 사용할 수 있습니다. 노드를 사용하면이 작업을 수행하는 간단한 방법이 있습니까? – RFtests