인스톨을한다
npm i puppeteer mocah chai
test폴더를 만들고 이름.test.js 라는 이름으로 테스트할 파일을 생성한다.
코드를 적는다.
ex) demo.test.js 파일을 만든다.
const { expect } = require('chai');
const puppeteer = require('puppeteer');
describe('ui 자동화 테스트 콜', function () {
it('1번째!:', function () {
console.info('info1');
});
it('2번째!:', function () {
console.info('info2');
});
});
package.json에 scripts에 있는 "test": "mocha --timeout 10000 test/demo.test.js"
를 한다.
npm run test라고 명령어를 친다.
테스트 이미지

1.test.test.js를 만들어서 puppeteer를 mocha, chai와 연동하기.
package.json에 "test": "mocha --timeout 10000 test/test.test.js"로 정의한다.
const puppeteer = require('puppeteer');
(async () => {
console.info('시작~!');
console.info('퍼펫티어', puppeteer);
const browser = await puppeteer.launch({
// 브라우저 만들어보기
headless: false,
args: ['--window-size=1920,1080'], // 사이즈
slowMo: 1, // 자동화시스템이라 너무 빨리 될 수 있기때문에 느리게 해주기위함.
});
const page = await browser.newPage();
await page.setViewport({
width: 1920,
height: 1080,
});
await Promise.all([
page.goto('http://www.naver.com'),
page.waitForNavigation(), // 다 로딩이 될때까지 기다려라.
]);
//Xpath문법
let target = "//span[text()='쇼핑']/ancestor::a";
await page.waitForXPath(target); //default 30초기다려줌.
let s = await page.$x(target); // Xpath 파라메터를 찾아서 리턴함.
s = s[0];
await Promise.all([
await s.click(),
page.waitForNavigation(), // 다 로딩이 될때까지 기다려라.
]);
target = "//ul[@id='categoryListPage1']/li/button";
await page.waitForXPath(target);
let arr = await page.$x(target);
for (item of arr) {
const value = await item.evaluate((el) => el.textContent);
console.info('value', value);
}
// 타이핑하기.
target = "//input[@title='검색어 입력']";
s = await page.$x(target);
s = s[0];
await s.type('핫한 아이템 찾아줘');
await new Promise((resolve) => setTimeout(resolve, 3000));
await page.close();
})();

selectorshub를 다운받아서 찾은게 아닌 래퍼런스에서 쓴 타겟값이 오류라서 시험에 통과하지못했다.
래퍼런스:https://www.youtube.com/watch?v=K28myouV8dc