机器人框架:等到元素可见后再看元素应该可见,哪个更好用?

时间:2018-11-05 09:53:30

标签: selenium selenium-webdriver robotframework selenium2library webdriverwait

我知道这两个元素都可以用来验证元素是否出现在页面上,但是我想知道每个元素对性能的影响和可读性。所以我的问题是,假设您要在页面中检查20个元素,

  1. 是否对所有20个元素都使用等待直到元素可见更好?

OR

  1. 对一个元素(例如标题文本)使用 Wait,直到元素可见为止,让我的自动化脚本知道页面已加载,然后使用 Element应该是可见的其余的(例如表单字段)?

2 个答案:

答案 0 :(得分:2)

是的,事实上,它们两者都可以用于验证页面上是否出现了某个元素,但是很显然,您可以设计测试来获得更好的性能。

理想情况下,等待应严格按照用例测试步骤执行。

  • 使用 Wait Until Element Is Visible :如果用例涉及所有20个元素的可见性,尽管请耐心等待,直到元素可见为止 >是最合适的。

  • 使用 Wait Until Element Is Visible作为标题文本,然后使用Element Should Be Visible :如果您的用例涉及任何元素的可见性,则引发 Wait Until Element Is Visible for header text 将是完整的开销。由于您没有使用标头文本进行验证,因此无需执行此步骤。相反,您应该针对所需元素的 可见性直接诱使等待

答案 1 :(得分:0)

在严格的性能比较中,在 DOM中已经存在的元素上,Wait Until Element Is VisibleElement Should Be Visible的执行速度实际上是相同的。 br /> 它们都做同样的事情-在DOM中找到元素,然后调用硒的is_visible()方法。区别在于Wait Until循环并在两个步骤中的任何一个失败时重复执行。

因此,在您(或类似情况)的情况下,当一个元素(标头)的存在应保证另外19个元素也已加载时,使用哪个元素都没有关系。
如果您在标头上使用Wait Until ...,在其他标头上使用Element Should Be Visible,则您还将在这种情况下测试该假设。自然,如果将第19个元素之外的所有元素与标头一起加载,则案例将失败。
如果在所有元素上使用Wait Until ...,则通过的机会会更高-如果添加任何元素并使其可视化的速度比其余元素慢,则kw将等待它。显然,这种情况将导致运行时间变慢-因为要等待条件被满足。


关于使用一个与另一个相比在可读性方面,我不会对此发表评论。这是实现和代码结构的问题;您总是可以使简单的事情看起来令人恐惧,或以优美的方式呈现复杂的解决方案:)。与python相同,允许您编写类似诗歌或丑陋的代码(某些SO答案也是如此:D);您的确为此感到内::)