-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
페이스북 로그아웃 관련해서 문의드립니다.
22.02.26 03:39 작성 조회수 90
0
안녕하세요, 페이스북 로그인 로그아웃 기능을 구현하는 예제를 학습하는 도중,
해결하지 못하겠는 문제가 생겨서 질문을 남깁니다.
현재 아래와 같이 수업을 따라 진행하고 있습니다만,
페이스북이 로그아웃 버튼을 강의 시기에는 <li> 태그 안에 두어서 lastchild로 찾을 수 있었다면,
현재는 여러 해쉬 처리된 div class로 찾기가 너무너무 어렵습니다.
요소 검사로 찾았다 싶은 class도 중복이 너무 많거나 안이 비어있습니다.
혹시 페이스북에서 로그아웃을 '태그'를 통해 할 수 있는 새로운 방법이 있을까요?
await page.evaluate(()=>{
document.querySelector('.i09qtzwb.n7fi1qx3.b5wmifdl.hzruof5a.pmk7jnqg.j9ispegn.kr520xx4.c5ndavph.art1omkt.ot9fgl3s.sx5rzos5.s45kfl79.emlxlaya.bkmhp75w.spb7xbtv').click;
});
항상 강의 너무 잘 듣고 있고 좋은 강의 해주셔서 감사합니다!
const puppeteer = require('puppeteer');
const dotenv = require('dotenv');
dotenv.config();
const autoLogin = async () => {
try {
const browser = await puppeteer.launch({
headless: process.env.NODE_ENV === 'production',
args: ['--window-size=1600,900']
});
browser.userAgent(
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.0 Safari/537.36'
);
const page = await browser.newPage();
await page.setViewport({
width: 1080,
height: 1080
});
await page.goto('https://www.facebook.com');
const id = process.env.APPLE;
const pw = process.env.BANANA;
/*
// 방법 1: 가장 단순한 로그인 방식
await page.evaluate((id, pw)=>{
// 아이디 입력
document.querySelector('#email').value = id;
// 비밀번호 입력
document.querySelector('#pass').value = pw;
// 로그인 버튼 클릭
document.querySelector('._6ltg button').click();
}, id, pw);
*/
// 방법 2: puppeteer를 사용한 로그인 방식
// page.type(선택자, 입력값) : 실제로 해당 선택자에 입력하는 것으로 작동
await page.type('#email', process.env.APPLE);
await page.type('#pass', process.env.BANANA);
// hover는 특정 태그 위에 마우스를 올리는 행위를 의미
await page.hover('._6ltg button');
await page.waitFor(800);
await page.click('._6ltg button');
await page.waitFor(800);
// 알림 허용 등 팝업 없애기 -> esc 버튼을 한 번 누르기
// page.keyboard.press()는 인자로 들어온 키를 누르는 동작을 함
// https://github.com/wix-incubator/unidriver/blob/master/core/src/puppeteer-us-keyboard-layout.ts
// ex) page.keyboard.press('Enter');
await page.keyboard.press('Escape');
await page.waitFor(1500);
await page.close();
await browser.close();
}
catch (err) {
console.error(err);
}
};
autoLogin();
답변을 작성해보세요.
0
조현영
지식공유자2022.02.26
https://stackoverflow.com/questions/47407791/how-to-click-on-element-with-text-in-puppeteer
이런식으로 텍스트가 로그아웃인 버튼을 찾을 수 있습니다.
답변 1