【发布时间】:2022-01-07 07:40:46
【问题描述】:
我试图让 Selenium 等到加载器 div 不可见。
这些是我的导入:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support.ui import expected_condition as EC
我首先单击一个按钮以打开一个弹出窗口,其中包含表格数据。
action.click()
action.perform()
点击后,我必须等到我可以按下按钮才能将这些数据导出到文件中。但是,我必须等待的时间差别很大。有时10秒有时几分钟。在此部分加载时,会出现一个加载器,阻止我点击屏幕上的任何位置。
我试图让 Selenium 等到这个加载器消失。但是,由于某种原因,脚本根本不等待。甚至没有传递给显式等待函数的最长时间。
time.sleep(10)
print("Waiting for button")
wait = WebDriverWait(driver, 30) # I am just testing with 30, it will be a larger value
wait.until(EC.invisibility_of_element((By.XPATH, "//div[@class='loader']")))
print("Finished Waiting for button")
driver.find_element_by_xpath("//button[@class='export']").click()
首先,我让 Selenium 等待 10 秒,以便加载器元素可以真正显示出来,它已经在 1-2 秒内显示出来。 之后,我使用 print 语句检查脚本实际等待的时间。 脚本根本不等待。它立即继续,然后导致错误,因为该按钮尚不可点击。
【问题讨论】:
-
用相关的 HTML 更新问题
标签: python selenium selenium-webdriver webdriverwait selenium-edgedriver