4

更新更多上下文: Selenium 1 有一个名为“setSpeed”的命令。这允许每个命令的执行减慢 X 毫秒。Selenium 2 (Webdriver) 背后的团队决定弃用此命令,现在无法减慢测试运行速度,以便在执行期间轻松直观地监控应用程序。我已经阅读了开发人员关于他们弃用它的原因的解释,以及使用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()
4

1 回答 1

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...............
于 2013-11-20T05:25:49.990 回答