Selenium 检查元素是否在 x 秒内可见
Selenium to check if element has been visible for x amount of seconds
由于隐私问题,我不能分享我正在处理的代码,但我需要的很简单,我的代码不应该被要求。
我有一个元素的 XPath。我想检查该元素已经可见了多少秒,但我不知道如何。
伪代码示例如下:
while True:
if driver.find_element_by_xpath('//@[id=element]').HasBeenVisibleFor(20):
break
else:
doStuff()
请帮忙!
如果你在轮询方法中添加一个 element.isDisplayed,每秒检查 X 秒
怎么样?
counter=0
while element.is_displayed():
counter++
time.sleep(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
由于隐私问题,我不能分享我正在处理的代码,但我需要的很简单,我的代码不应该被要求。
我有一个元素的 XPath。我想检查该元素已经可见了多少秒,但我不知道如何。
伪代码示例如下:
while True:
if driver.find_element_by_xpath('//@[id=element]').HasBeenVisibleFor(20):
break
else:
doStuff()
请帮忙!
如果你在轮询方法中添加一个 element.isDisplayed,每秒检查 X 秒
怎么样?counter=0
while element.is_displayed():
counter++
time.sleep(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