2014-01-22 3 views
5

자바로 테스트 자동화를 작성하기 위해 셀레늄을 사용하고 있습니다. DOM 요소의 클래스 속성을 추출하려고하면 나에게 적합하지 않습니다. 여기 내 코드입니다 :셀레늄은 자바 스크립트로 요소의 클래스 속성을 얻습니다.

var webdriver = require('selenium-webdriver'); 
var driver = new webdriver.Builder(). 
      withCapabilities(webdriver.Capabilities.ie()). 
      build(); 
var usernameField = driver.findElement(webdriver.By.id('username')); 
var classes = usernameField.getAttribute('class'); 
console.log(classes); 

이 다음은 인쇄 :

{ then: [Function: then], 
cancel: [Function: cancel], 
isPending: [Function: isPending] } 

이 요소의 속성 값을 찾는 방법을 알려주십시오.

+1

이 "usernameField"요소의 HTML은 어떻습니까? – Arran

답변

3

발견되었습니다. 어떤 값이 할당되기 전에 console.log()가 비동기 적으로 실행되었습니다. 그것을 다음 문장을 사용하여 순차적으로 실행하도록 강요하면 문제가 해결됩니다.

var webdriver = require('selenium-webdriver'); 
var driver = new webdriver.Builder(). 
     withCapabilities(webdriver.Capabilities.ie()). 
     build(); 
var usernameField = driver.findElement(webdriver.By.id('username')); 
usernameField.getAttribute('class') 
.then(function(classes){ 
    console.log(classes); 
}); 
관련 문제