实际上,我正在为电子商务网站创建自动化测试。实际上,网站有懒惰负载等功能。我在UAT服务器上测试它。因此,它将缓慢加载页面,因为服务器的规范。从网页加载所有资源需要60秒或更长时间。因此,当我尝试创建selenium自动化时,它总是等待超过60秒继续下一步(因为等待页面完全加载)。请有人给我提示如何在等待页面加载10秒后继续运行测试步骤。它不会抛出异常,只需继续测试步骤。
答案 0 :(得分:1)
不可能。
如果找到一些元素并尝试在加载时执行某些操作,则会出现stale element
错误+由于加载问题,您将遇到大量失败的测试,并且需要花费更多时间进行调试。
自动化意味着 快速执行 , 具有可靠的结果 。
看来这个环境不是为自动化而构建的,您应该请求更多资源。
作为替代方案,您可以使用无头驱动程序或查看是否可以在VM上放置相同的版本。
为什么这是一个问题:Selenium需要等待每个请求完成。例如,当您请求页面时,如果页面未完全收到且服务器仍在发送信息,那么请求未完成,您需要完整的请求才能继续。
您应该向您的项目经理/ QA负责人提出此问题,并就如何处理此事项征求意见/建议 请注意,这些费用应包含/添加到自动化价格中。您需要以简单的方式解决这个问题:
良好的服务器 - >自动化运行平稳,快速,测试也是如此 做得更快
糟糕的服务器 - >因为不可靠而且每个都无法运行自动化 测试具有高失败率=>替代 X 天 每个构建的手动测试
如果这是一个编码问题,比如一些延迟的ajax请求,那么你会有一些解决方案,开发人员可以提供帮助,但如果是基础设施/资源问题,那么如果不依赖于你,你就无法解决它。
您可以使用try任意类型的wait implicit / explicit,explicit会抛出一些异常,但这不是解决资源不足的问题。