【发布时间】:2017-06-23 01:05:41
【问题描述】:
我有一个正在运行的代码,但有时我会在 30 秒内超时,有时会在 80 秒或更多(取决于服务器端),所以重点是 - 如何让我的代码在我可以查看元素后停止而不是等到 120 秒过去? 好吧,我想要实现的是在屏幕上没有显示元素时停止代码:
def isElementPresent(self):
try:
wait = WebDriverWait(self.driver, 120)
wait.until(EC.invisibility_of_element_located((By.NAME, 'GETTING NEW IMAGE FROM HOME SYSTEM')))
except TimeoutException:
print('Camera Timeout')
【问题讨论】:
-
什么是
'GETTING NEW IMAGE FROM HOME SYSTEM'?每个循环的值都改变了吗?我只是好奇你为什么需要那个循环。 -
不,这个名字一直都是一样的。只是随着相机改变图像而出现和消失
-
我不敢相信有时你会在 30 或 80 秒内超时。当它进入循环时,它将等待元素 120 秒。如果找到该元素,它将立即打破
while循环。否则,它将打印“相机超时”,然后进入下一个循环,并等待该元素 120 秒。再次。关键是超时错误总是在 120 秒。但是打破循环的时间取决于找到元素需要多长时间。 -
是的,我不想一直等待 120 秒,因为它可能需要更少的时间,但程序仍在等待。
-
你在哪里打电话给
isElementPresent?你能显示更多代码吗?