Python Sleep已经过时了

时间:2015-08-04 18:50:29

标签: python selenium

我在这里编写了一个小的python脚本,我在Windows 7专业版(64位)的dos提示符下运行它。问题是我正在呼叫time.sleep(1)并且平均睡眠时间为30秒。现在,我可以忍受毫秒级的差异,但是30倍?这有点太多了。这是我正在做的更大的信息:

for i in range(10):
    print("start loop at " + str(i))
    try:
        if self.driver.find_element_by_link_text(text).is_displayed():
            break
    except:
        print("pass")
        pass
    time.sleep(1)
else:
    print("failing on timeout")
    self.fail("time out")

所有这些(正如您可能猜到的)都包含在由unittest运行的类中。我甚至不知道从哪里开始排除故障。

修改 来自Selenium IDE的生成的python代码是垃圾......

1 个答案:

答案 0 :(得分:2)

很可能time.sleep不是罪魁祸首,而是功能:

self.driver.find_element_by_link_text(text).is_displayed():

如果10秒超时更重要,那么调用函数10x可以在运行循环之前设置时间戳,然后查看是否已经过了10秒。

import time

timestamp = time.time()
while time.time() < timestamp + 10:
    print("start loop at " + str(i))
    try:
        if self.driver.find_element_by_link_text(text).is_displayed():
            break
    except:
        print("pass")
        pass
else:
    print("failing on timeout")
    self.fail("time out")