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

时间:2019-06-16 11:30:55

标签: python selenium chromium

由于隐私问题,我无法共享正在使用的代码,但是我所需要的非常简单,不需要我的代码。

我有一个元素的XPath。我想检查该元素可见多少秒,但我不知道如何。

一个伪代码示例为:

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

请帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用显式等待元素的可见性和不可见性,并获取它们之间的持续时间。

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

答案 1 :(得分:0)

如果在一个每秒检查X秒的轮询方法中添加一个element.isDisplayed怎么办

counter=0

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