我需要在自动化测试用例的每个操作后使用此“Thread.sleep(5000)”命令。 是否有其他方法可以在每次操作后跳过编写此命令。
如果我跳过此命令,我得到“超时”和“找不到元素”错误。
答案 0 :(得分:4)
您可以使用隐式等待。初始化WebDriver后添加以下行: (C#中的例子)
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
隐式等待是告诉WebDriver对DOM进行轮询 尝试查找一个或多个元素的时间量 没有立即可用。默认设置为0.一旦设置, 隐式等待是为WebDriver对象实例的生命周期设置的。
答案 1 :(得分:4)
在每个动作之后放Thread.sleep(5000)
绝对不是个好主意。如果您将进行大量测试,则需要花费很多时间(如小时)才能完成所有测试。
对于这些情况,WebDriver中有waiting
机制,它基本上同步代码和浏览器行为中的操作,因此您不会获得ElementNotFoundException
,因为所有操作都将同步。
您可以在Selenium docs http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp
上看到很多示例