Selenium检查元素是否在x秒内可见

2024-09-30 14:30:52 发布

您现在位置:Python中文网/ 问答频道 /正文

由于隐私问题,我无法共享正在处理的代码,但我需要的是它相当简单,不需要我的代码

我有元素的XPath。我想检查这个元素已经出现了多少秒,但我不知道怎么做

这方面的伪代码示例如下:

while True:
    if driver.find_element_by_xpath('//@[id=element]').HasBeenVisibleFor(20):
        break
    else:
        doStuff()

请帮帮我


Tags: 代码idtrue元素示例byifdriver
2条回答

可以使用元素的显式wait for visibility和invisibility,并获取它们之间的持续时间

wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of(driver.find_element_by_xpath('//@[id=element]')))
t1 = time.time()

wait.until(EC.invisibility_of_element(driver.find_element_by_xpath('//@[id=element]')))
t2 = time.time()

print(t2-t1)

要使用显式等待,需要导入以下内容

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

如果您在poll方法中添加element.isDisplayed,该方法每秒检查X秒,效果如何

counter=0

while element.is_displayed():
  counter++
  time.sleep(1)

相关问题 更多 >