---
slug: "pyppeteer-wait-element-no-exist"
title: "Wait Until the Element Disappears with Puppeteer (Pyppeteer)"
description: "Here's an introduction to a code snippet that waits for an element to disappear, using Pyppeteer, which is Python's version of Puppeteer. The same approach should work similarly in Puppeteer's JavaScript version."
url: "https://www.ytyng.com/en/blog/pyppeteer-wait-element-no-exist"
publish_date: "2021-06-09T04:24:00Z"
created: "2021-06-09T04:24:00Z"
updated: "2026-02-26T21:23:44.860Z"
categories: ["Python"]
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/921eb36cf78a4e26a8e60f410ed951a6.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "en"
---

# Wait Until the Element Disappears with Puppeteer (Pyppeteer)

<p>Because it's Python, we're using Pyppeteer. The same approach should work for Puppeteer in JS as well.</p>
<p>Here, we introduce code to wait until an element disappears.</p>
<p></p>
<pre><span>from </span>pyppeteer.browser <span>import </span>Browser<br /><span>from </span>pyppeteer.errors <span>import </span>TimeoutError<br /><span>from </span>pyppeteer.page <span>import </span>Page<br /><span><br /></span><span><br /></span><span>async def </span><span>_wait_no_exist_for_selector</span>(page: <span>Page</span>, selector, timeout=<span>30000</span>):<br />    <span>for </span>i <span>in </span><span>range</span>(<span>int</span>(timeout / <span>100</span>)):<br />        <span>try</span>:<br />            <span>await </span>page.waitForSelector(selector, <span>timeout</span>=<span>100</span>)<br />            <span>await </span>asyncio.sleep(<span>0.1</span>)<br />            <span>continue<br /></span><span>        except </span>TimeoutError:<br />            <span>return<br /></span><span><br /></span><span>    raise </span>TimeoutError(<span>f'</span><span>{</span>selector<span>}</span><span> did not disappear'</span>)</pre>
<p></p>
<p>The timeout value for waitForSelector is the time used when the element doesn't exist, so it can be shorter (like 1).</p>
<p>The polling wait time when the element exists is the following:</p>
<pre><span>await </span>asyncio.sleep(<span>0.1</span>)</pre>
<p></p>
