由于隐私问题,我无法共享正在使用的代码,但是我所需要的非常简单,不需要我的代码。
我有一个元素的XPath。我想检查该元素可见多少秒,但我不知道如何。
一个伪代码示例为:
while True:
if driver.find_element_by_xpath('//@[id=element]').HasBeenVisibleFor(20):
break
else:
doStuff()
请帮助!
答案 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)