如何使Python等待网站弹出?



我试图使用selenium webdriver与Python登录到一个网站。但在这个网站上,一旦我按下登录按钮,在网站弹出显示,我必须点击弹出按钮。这个网站做得不是很好,每次弹出窗口出现在网站上的时间都不一样,有时需要几秒钟,有时需要15-20分钟。我想知道是否有一种方法可以让Python等待,直到它检测到弹出窗口或我需要在屏幕上按下的按钮,然后继续执行函数并单击按钮。

在这种情况下可以而且应该使用显式等待。
例如,如果关闭弹出窗口的按钮可以通过button.close-pop-up选择器找到,则可以使用以下命令:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.close-pop-up"))).click()

要使用它,你需要导入

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

并通过

初始化wait对象
wait = WebDriverWait(driver, 20)

有关示例代码,请参阅此讨论或任何其他使用"预期条件">

的selenium代码

最新更新