0
아래의 mocha 및 webdriverio 스크립트는 페이지가로드되기 전에 어설 션을 전달합니다.페이지가로드되기 전에 모카 어설 션이 전달되었습니다.
아마도 요소 자체가 아직 존재하지 않을 때 모든 것을 어떻게 전달하는지 이해하지 못합니다. 페이지가로드 된 후 해당 요소가 클릭되지 않은 것을 볼 수 있습니다. 가짜 패스인가요? 코드에서 어떻게 수정합니까? 브라우저가 페이지를로드 할 수있는 기회가 있었다 전에
이var webdriverio = require('webdriverio');
var should = require('chai').should()
var expect = require('chai').expect()
var options = {
desiredCapabilities: {
browserName: 'chrome'
}
};
before(function() {
browser=webdriverio.remote(options)
return browser.init()
});
describe('sauce labs page test', function() {
it('should assert page title', function(done) {
browser.url('https://docs.saucelabs.com/reference/platforms-configurator/?_ga=1.5883444.608313.1428365147#/');
browser.getTitle().then(function(title){
title.should.equal('Platform Configurator');
});
done();
});
it('should assert sub heading', function(done) {
browser.getText('h3').then(function(text) {
text.should.equal('API');
console.log(text);
});
done();
});
it('should click on selenium', function(done) {
browser.click('#main-content > div > ng-view > div > div:nth-child(1) > div.choice-buttons.choice-api > div:nth-child(2)')
done();
});
});
당신을 감사합니다. 그게 효과가있다. 나는 약속을 사용 하겠지만, 어떻게 이해해야하는지'do()'는'browser.getTitle()'이 호출 될 때까지 기다려야하고, 결국'title.should.equal() 'Platform Configurator')를 호출하여 모든 것이 정렬됩니다. 숨겨진 부분이 너무 많아서 이해하기가 어렵습니다. – user1207289
테스트중인 코드는 비동기식이므로 비동기식 코드를 사용하는 경우 계속하기 전에 비동기식 작업이 완료 될 때까지 기다려야합니다 ('done' 호출). 테스트가 끝난 모카에게 신호). 약속과 함께 비동기 액션은'then/onFullfilled' 콜백이 호출 될 때 완료됩니다 (또는 콜백이 있다면 catch/onRejected 콜백). – robertklep