2017-09-07 4 views
0

.then() 또는 async/await를 사용하지 않고 각 단계를 동 기적으로 실행하는 셀렌 테스트를 만들려고합니다. 그 이유는 우리 테스트 팀의 거의 모든 사람들이 기술 능력에 관계없이 쉽게 자동화 된 테스트를 쉽게 읽을 수 있도록하는 일련의 기능을 만들고 싶다는 것입니다. webdriver-sync가 나에게 내가 원하는 것을 정확하게 주어야하는 것처럼 보입니다. 브라우저가 시작되고, 페이지를로드하기 시작합니다 ...하지만 단계를 동 기적으로 실행되지 않습니다 - - 그것은 계속 찾아 시도하고비동기식으로 실행되는 webdriver-sync?

var wd = require('webdriver-sync'); 
var By = wd.By; 
var Chromedriver = wd.Chromedriver; 
var driver = new Chromedriver; 
driver.get('https://my.test.url'); 
var myButton = driver.findElement(By.cssSelector('[id*=CLICK_ME]')); 
myButton.click(); 

그것은 실행하려고 : 그러나 다음 더미 코드는 생산 문제입니다 페이지가로드가 끝나기 전에 "myButton"을 클릭하십시오. "no such element"오류가 발생합니다 ... 어느 정도 나 webdriver-sync의 요점을 잃었습니까?! 누군가 내가 잘못 가고 있다고 말할 수 있습니까?

FWIW, 난, 모든 CentOS는 7

사전에

감사에서 실행 webdriver 동기화 1.0.0, 노드 v7.10.0, 자바 1.8.0_74있다!

+0

firefox 드라이버에서 같은 오류가 있습니까? –

+0

Chrome에서 실제로이 작업이 필요하지만 그럼에도 불구하고 FF로 전환하려고했습니다. github.com/jsdevel/webdriver-sync의 지침을 사용하여 FF 드라이버를 인스턴스화하면 "webdriver.gecko.driver 시스템 속성으로 드라이버 실행 파일의 경로를 설정해야합니다."- 그러나 어떻게 볼 수 있습니까? node.js로 이것을 설정 하시겠습니까? – r51

+0

nodejs와 함께 셀레늄 webdriver를 사용하는 유일한 경우 webdriver.io를 사용하여 정상적으로 작동했습니다. –

답변

1

문자열 값이므로 "CLICK_ME"을 큰 따옴표로 묶어야합니다.

일반적으로 동적 페이지는 모든 요소가 만들어지기 전에 "준비"되어 있기 때문에 특정 요소를 기다리는 것이 좋습니다.