等到页面加载 Selenium Python

Posted

技术标签:

【中文标题】等到页面加载 Selenium Python【英文标题】:Wait until the page loaded Selenium Python 【发布时间】:2021-01-18 05:03:18 【问题描述】:

我正在使用 Selenium Python 打开一个 chrome 标签。我想等到蓝色圆圈停止旋转。请检查屏幕截图。 用例是在登录按钮上计时,然后弹出一个窗口。 如果页面仍在加载,即蓝色圆圈仍在旋转,则登录按钮不起作用。我想等到那个蓝色圆圈消失。

【问题讨论】:

【参考方案1】:

这应该对你有帮助:

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

login_btn = WebDriverWait(driver, 500).until(EC.presence_of_element_located((By.XPATH, 'xpath of login button'))) #Waits until the login button is visible.

login_btn.click()

如果您不想通过xpath 找到按钮,则可以将By.XPATH 更改为By.IDBy.CLASS_NAME

编辑:

完整代码如下:

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

chrome_options = Options()

chrome_options.add_argument("--start-maximized")

driver = webdriver.Chrome('chromedriver.exe',options = chrome_options)

driver.get('https://www.nike.com/es/launch/t/womens-air-jordan-6-tech-chrome')

login_btn = WebDriverWait(driver, 500).until(EC.presence_of_element_located((By.XPATH, '//*[@id="root"]/div/div/div[1]/div/header/div[1]/section/div/ul/li[1]/button'))) #Waits until the login button is visible.

login_btn.click()

输出截图:

【讨论】:

我之前尝试过,但没有成功。我只想等待,除非所有加载的过程都完成。 我已经在更新的ans中提供了完整的代码。只需将代码复制粘贴到您的编辑器中并检查它是否有效。 感谢 Sushil,正如我所提到的。我早些时候尝试过它并且它有效,但有时它不是打开登录弹出窗口而是显示空白弹出窗口,我不是它的原因,但仍然非常感谢您的帮助:) 好的...不客气!一个来自我身边的卑微请求。你能接受我的回答作为最佳答案吗? 是的,Sushil

以上是关于等到页面加载 Selenium Python的主要内容,如果未能解决你的问题,请参考以下文章

Selenium 等到文档准备好

Selenium WebElement.Click() 是不是等到加载下一页?

Robotframework:Selenium2Lib:等到(...)关键字

selenium+python,如何判断一个页面已经加载完成?

selenium+python自动化之操作浏览器

如何用python的selenium提取页面所有资源加载的链接