puppeteer의 waitForXpath는 더 이상 사용되지 않는다. 대체 방법.

puppeteer의 waitForXpath는 더 이상 사용되지 않는다.

Obsolete API - waitForXpath

조금 늦은 감이 있지만, 아무튼 Puppeteer 16.1.0부터 waitForXpath 메서드 등 XPath 관련 독립 메서드들이 모두 더 이상 사용되지 않게 됐다. 그렇다고 더 이상 XPath를 사용하여 엘리먼트를 선택할 수 없는 것은 아니다.

waitForSelector를 사용한 xpath 쿼리

이제부터는 waitForSelector를 사용해 xpath를 쿼리할 수 있다. 이렇게 하려면 셀렉터에 xpath/ prefix를 붙여주면 된다.

await elementHandle.waitForSelector('xpath/' + xpathExpression);

xpath/까지가 본체이고 이후에는 통상 xpath를 입력하면 된다는 말. 즉 ../input[@id='query']를 쿼리하고자 한다면

await elementHandle.waitForSelector('xpath/../input[@id="query"]');

와 같이 사용하면 된다. //button[@type='submit']을 찾고자 한다면, 슬래쉬 세 개가 들어간다고 두려워하지 말고

await elementHandle.waitForSelector('xpath///button[@type="submit"]');

과 같이 사용하면 된다.

PuppeteerSharp

puppeteer의 C#용 포팅 라이브러리인 PuppeteerSharp 역시 이와 같은 변경 사항이 적용되었으니 같은 방식으로 사용하면 되겠다.

댓글

이 블로그의 인기 게시물

C# 남아도는 메모리에도 불구하고 OutOfMemoryException이 발생한다면?

USB를 뒤는 괜찮은데 앞에 꽂으면 인식이 힘들다?

MySQL 데이터 타입과 Java 데이터 타입 비교/매칭