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 역시 이와 같은 변경 사항이 적용되었으니 같은 방식으로 사용하면 되겠다.
댓글
댓글 쓰기