puppeteer 사용 중 웹페이지의 중간 querySelector 어딘가에서 자꾸 null을 뱉었다. waitForSelector로 셀렉터 로드 될때까지 충분히 기다려도 timeout이 나는 상황.
처음엔 설마 봇을 막나 하고 봇 디텍션을 우회하는 방법을 사용해봤다 (링크)

그래도 안 되어서 계속 찾아보니, DOM TREE 중간 어딘가에 아이프레임이 걸려있었다.
찾고자 하는 셀렉터는 iframe 내부에 있어 찾지 못했던것.
아래처럼 프레임 내부에서 처리해주면 된다

 const frame = page.frames().find(frame => frame.name() === 'myframe');
 const text = await frame.$eval('.selector', element => element.textContent);
 console.log(text);