【问题标题】:How to continue test when the page still not completely loaded in selenium当页面仍未在硒中完全加载时如何继续测试
【发布时间】:2016-11-23 07:02:17
【问题描述】:

实际上,我正在为电子商务网站创建自动化测试。实际上,该网站具有延迟加载或其他功能。我正在 UAT 服务器上对其进行测试。因此,由于服务器的规范,它会缓慢加载页面。从网页加载所有资源需要超过 60 秒或更长时间。因此,当我尝试创建 selenium 自动化时,它总是等待超过 60 秒才能继续下一步(因为等待页面完全加载)。请有人给我提示如何在等待页面加载 10 秒后继续运行测试步骤。它不会抛出异常,只需继续测试步骤即可。

【问题讨论】:

    标签: selenium


    【解决方案1】:

    不可能。

    如果您在加载时找到一些元素并尝试执行一些操作,您将收到 stale element 错误 + 由于加载问题,您将有很多失败的测试,并且需要更多的时间来调试。

    自动化意味着快速执行并且有可靠的结果
    看来这个环境不是为自动化而构建的,您应该请求更多资源。

    作为替代方案,也许您可​​以使用无头驱动程序或查看是否可以在 VM 上放置相同的构建。

    为什么会出现这个问题:Selenium 需要等待每个请求完成。例如,当您请求一个页面时,如果没有完全接收到该页面并且服务器仍在发送信息,那么请求未完成,您需要一个完整的请求才能继续,这是合乎逻辑的。

    您应该将此问题告知您的项目经理/QA 负责人,并就如何处理此问题寻求建议/选项。
    请注意,这些费用应包含/添加在自动化价格中。您需要以简单的方式解决这个问题:

    • 良好的服务器 -> 自动化运行平稳快速,测试 完成得更快

    • 服务器故障 -> 无法运行自动化,因为不可靠且每个 测试失败率很高 => 替代 X 天 每个构建的手动测试

    如果这是一个编码问题,例如一些延迟的 ajax 请求,那么您将有一些解决方案,开发人员可以提供帮助,但如果是基础设施/资源问题,那么如果不是取决于您,您将无法解决。
    你可以尝试任何类型的隐式/显式等待,显式会抛出一些异常,但这不是解决资源不足的解决方案。

    【讨论】:

    • 其实我知道为什么我的自动化就像永远等待。页面和元素已经加载。但是有些东西让自动化永远等待。所以我需要超时并继续测试。如果我不想测试的元素没有正确加载,如果它会给出错误就可以了。
    • 是否可以使用隐式等待?
    猜你喜欢
    • 2022-01-22
    • 2016-06-10
    • 2023-03-14
    • 2016-07-16
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2023-04-11
    • 2014-03-25
    相关资源
    最近更新 更多