改变测试的执行速度?

时间:2012-11-12 20:36:53

标签: python webdriver

使用更多上下文进行更新:Selenium 1有一个名为“setSpeed”的命令。这允许每个命令的执行速度减慢X毫秒。 Selenium 2(Webdriver)背后的团队决定弃用这个命令,现在没有办法减慢测试速度,以便在执行期间可以直观地监视App。我已经阅读了开发人员关于他们为什么弃用它的解释,以及建议的解决方法,比如使用implicit_waits,但这并不能解决我(或其他人抱怨弃用)的问题。也就是说,我希望通过设置适用于unittest中的每个方法或整个测试套件的全局执行速度来解决这个问题。

原始问题:我有不同的单元测试,我想在命令之间使用不同的延迟执行。我知道我可以在命令之间继续复制和粘贴time.sleep,但是肯定有一种方法可以设置一个通用睡眠,它将在指定方法中的每个命令之前运行吗?

 def test_x_test(self):
     driver = self.driver
     time.sleep(2)
     print("running the First selenium command such as click button")
     time.sleep(2)    
     print("running another Selenium command such as click link ")
     time.sleep(2)    
     self.driver.quit()

 if __name__ == '__main__':
     unittest.main()

1 个答案:

答案 0 :(得分:1)

啊,现在答案是如此明显。

创建一个控制webdriver操作的辅助方法,然后再执行暂停操作:

以下将是伪代码,因为我无法在工作中访问Python IDE

#passing in Webdriver instance and the command we want to execute into our helper method   
webdriverHelper(driver, command):
    #this 2 second sleep will get run each time
    time.sleep(2)
    if command == "click":
        driver.getElement.click()
    elif command== "getText":
        driver.getElement.getText()
    etc...............