使用更多上下文进行更新: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()
答案 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...............