Selenium 在UI自动化脚本中使用硬等待有什么错? 我总是不断收到人们抱怨的问题 或者fluent一直在等待不工作,所以寻找其他 解决方案在大多数情况下,在经历了2到5分钟的艰难等待后 3秒的问题得到解决

Selenium 在UI自动化脚本中使用硬等待有什么错? 我总是不断收到人们抱怨的问题 或者fluent一直在等待不工作,所以寻找其他 解决方案在大多数情况下,在经历了2到5分钟的艰难等待后 3秒的问题得到解决,selenium,selenium-webdriver,automation,wait,ui-automation,Selenium,Selenium Webdriver,Automation,Wait,Ui Automation,但是,让脚本速度变慢的决定仍然不能让人满意 在使用几秒钟的硬等待后,如果 我认为他们是真正需要的 我知道答案的解决方案不是任何代码,但我想真正了解在自动化脚本中使用硬等待是否有任何严重的危险? 对我来说,它们与清晰流畅的等待同样重要。 硬等待或隐式等待是不可取的,因为它们会给自动化套件增加不必要的执行时间。如果您的测试套件很小,没有定期运行,或者您没有任何时间限制,那么隐式等待可能是可以接受的 在大多数真实场景中,快速测试执行周转是非常理想的,如果您对分支的每次提交都执行测试,或者有一个大型测试

但是,让脚本速度变慢的决定仍然不能让人满意 在使用几秒钟的硬等待后,如果 我认为他们是真正需要的

我知道答案的解决方案不是任何代码,但我想真正了解在自动化脚本中使用硬等待是否有任何严重的危险? 对我来说,它们与清晰流畅的等待同样重要。


    硬等待或隐式等待是不可取的,因为它们会给自动化套件增加不必要的执行时间。如果您的测试套件很小,没有定期运行,或者您没有任何时间限制,那么隐式等待可能是可以接受的

    在大多数真实场景中,快速测试执行周转是非常理想的,如果您对分支的每次提交都执行测试,或者有一个大型测试套件,那么添加几个2/3秒的等待时间会非常快

    我认为,如果显式等待不能正常工作,那么它们是:

  • 拙劣
  • 没有足够的时间
  • 前者的可能性更大。

    使用“硬等待”或
    Thread.Sleep()
    的危险更准确地说是,您不确定自己的条件是否满足。在UI测试中,您主要添加睡眠,这样UI将满足某些条件,如页面加载、元素显示/启用等

    当您使用
    Thread.Sleep()
    时,您需要将其设置为最长时间,以便确保您的条件得到满足(即使您无法确定“压力”情况-网络负载等)。因此,您会浪费时间和资源,这使得您的自动化的可扩展性和敏捷性更低(对某些人来说,这是另一个危险…)


    所以我想说,如果你不能给wait
    线程添加一个条件,Sleep()
    是可以的(尽管可读性较差),否则这只是一个不好的做法

    保持显式的
    等待
    不会有任何伤害。在我们的项目中,我们也使用显式等待,它只会消耗时间,但它可以确保脚本正常运行。我们没有测试应用程序的性能。@KishanPatel:我的问题不是显式等待,人们喜欢使用它,Kishan我的问题是使用硬等待。硬等待?是thread.sleep()吗?我的意思是我刚才说的只是等待。它消耗时间,但确保脚本正常工作。因此,保持这样的等待并无害处。这只是因为我们的脚本非常安全,即使它需要时间。