如何在Python脚本中设置时间延迟?
当前回答
也可以通过以下方法实现延迟。
第一种方法:
import time
time.sleep(5) # Delay for 5 seconds.
延迟的第二种方法是使用隐式等待方法:
driver.implicitly_wait(5)
当您必须等待特定操作完成或找到元素时,第三种方法更有用:
self.wait.until(EC.presence_of_element_located((By.ID, 'UserName'))
其他回答
虽然其他人都建议使用事实上的时间模块,但我想我应该使用matplotlib的pyplot函数pause来分享一种不同的方法。
一个例子
from matplotlib import pyplot as plt
plt.pause(5) # Pauses the program for 5 seconds
通常,这是为了防止绘图在绘制后立即消失或制作粗糙的动画。
如果您已经导入了matplotlib,这将为您保存一个导入。
Python标准库中的Tkinter库是一个可以导入的交互式工具。基本上,您可以创建按钮、框、弹出窗口和显示为窗口的东西,并使用代码进行操作。
如果使用Tkinter,请不要使用time.sleep(),因为它会破坏程序。这种情况发生在我身上。相反,使用root.after()并用毫秒来替换多少秒的值。例如,time.sleep(1)相当于Tkinter中的root.after(1000)。
否则,许多答案都指出了time.sleep(),这才是正确的方法。
您也可以尝试以下操作:
import time
# The time now
start = time.time()
while time.time() - start < 10: # Run 1- seconds
pass
# Do the job
现在,炮弹不会坠毁,也不会反应。
延迟是通过时间库完成的,特别是time.sleep()函数。
让它等待一秒钟:
from time import sleep
sleep(1)
这之所以有效,是因为通过执行以下操作:
from time import sleep
你只从时间库中提取睡眠函数,这意味着你只需要调用它:
sleep(seconds)
而不是必须键入
time.sleep()
打字的时间太长了。
使用此方法,您将无法访问时间库的其他功能,也无法使用名为sleep的变量。但您可以创建一个名为time的变量。
如果您只需要模块的某些部分,那么从[library]导入[function](,[function2])非常有用。
你也可以这样做:
import time
time.sleep(1)
只要输入time,就可以访问时间库的其他功能,如time.clock()。[function](),但无法创建变量time,因为它会覆盖导入。要做的解决方案
import time as t
这将允许您将时间库引用为t,允许您执行以下操作:
t.sleep()
这适用于任何库。
这是一个简单的时间延迟示例:
import time
def delay(period='5'):
# If the user enters nothing, it'll wait 5 seconds
try:
# If the user not enters a int, I'll just return ''
time.sleep(period)
except:
return ''
另一个,在Tkinter:
import tkinter
def tick():
pass
root = Tk()
delay = 100 # Time in milliseconds
root.after(delay, tick)
root.mainloop()