当我测试 GUI 时,元素出现和消失的速度太快
When I am testing a GUI, an element appears and disappears too quickly
我正在使用 Webdriver.io 和 mocha 工具测试 GUI。测试本身是用 CoffeeScript 编写的。部分界面元素加载时间过长,出现旋转加载指示器。为了继续测试过程,需要等待数据完全加载(即等待加载指示器消失)。此过程是使用函数 (1):
执行的
wait_for_page_load = () ->
$('... load indicator selector ...').waitForDisplayed(20000)
$('... load indicator selector ...').waitForDisplayed(20000, true)
在第一行中,我期待下载指示器出现的那一刻。在第二个学期,我希望加载指示器消失。
但是,在这个过程中,我遇到了下载指示器出现和消失太快的情况。同时,我根本没有时间去“捕捉”加载指示器,因为在那一刻,当我期望它出现时,它已经消失了。同时控制台显示错误信息:
element ("... load indicator selector ...") still not displayed after 20000ms
我找到了摆脱这种情况的方法。当出现类似问题时,我只修复了加载指示器的消失。此过程是使用函数 (2):
执行的
wait_for_page_load = () ->
$('... load indicator selector ...').waitForDisplayed(20000, true)
需要注意的是,随着loading indicator的快速消失,完全不等待也是不可能的-在这种情况下,新数据将没有时间加载。
然而,在某些情况下,我无法预先确定加载指示器将显示多长时间:有时它几乎立即消失,我无法跟踪它出现的时间,在这些情况下我必须使用函数 (2);有时它会旋转很长时间,可以使用函数 (1).
来追踪它出现的时刻
是否可以编写一个通用函数来修复图形元素的出现和消失,即使该元素出现和消失的速度非常快?
到目前为止,我找到了以下解决问题的方法。在需要等待加载指示灯消失的情况下,我先超时一秒,然后等待加载指示灯消失。
utilities.wait_for_page_load = () ->
browser.pause(1000)
$('... селектор индикатора загрузки ...').waitForDisplayed(20000, true)
因此,如果下载指示器出现和消失的太快,那么在超时结束时,它将不再出现在屏幕上,我们分别自动等待下载指示器消失。如果下载指示器长时间挂在屏幕上,那么在超时结束时,我们只需继续等待它消失。
方法不理想。它的主要缺点是增加了总测试 运行 时间。但是,该方法是通用的,可以让您处理问题中描述的两种情况。
我正在使用 Webdriver.io 和 mocha 工具测试 GUI。测试本身是用 CoffeeScript 编写的。部分界面元素加载时间过长,出现旋转加载指示器。为了继续测试过程,需要等待数据完全加载(即等待加载指示器消失)。此过程是使用函数 (1):
执行的wait_for_page_load = () ->
$('... load indicator selector ...').waitForDisplayed(20000)
$('... load indicator selector ...').waitForDisplayed(20000, true)
在第一行中,我期待下载指示器出现的那一刻。在第二个学期,我希望加载指示器消失。
但是,在这个过程中,我遇到了下载指示器出现和消失太快的情况。同时,我根本没有时间去“捕捉”加载指示器,因为在那一刻,当我期望它出现时,它已经消失了。同时控制台显示错误信息:
element ("... load indicator selector ...") still not displayed after 20000ms
我找到了摆脱这种情况的方法。当出现类似问题时,我只修复了加载指示器的消失。此过程是使用函数 (2):
执行的wait_for_page_load = () ->
$('... load indicator selector ...').waitForDisplayed(20000, true)
需要注意的是,随着loading indicator的快速消失,完全不等待也是不可能的-在这种情况下,新数据将没有时间加载。
然而,在某些情况下,我无法预先确定加载指示器将显示多长时间:有时它几乎立即消失,我无法跟踪它出现的时间,在这些情况下我必须使用函数 (2);有时它会旋转很长时间,可以使用函数 (1).
来追踪它出现的时刻是否可以编写一个通用函数来修复图形元素的出现和消失,即使该元素出现和消失的速度非常快?
到目前为止,我找到了以下解决问题的方法。在需要等待加载指示灯消失的情况下,我先超时一秒,然后等待加载指示灯消失。
utilities.wait_for_page_load = () ->
browser.pause(1000)
$('... селектор индикатора загрузки ...').waitForDisplayed(20000, true)
因此,如果下载指示器出现和消失的太快,那么在超时结束时,它将不再出现在屏幕上,我们分别自动等待下载指示器消失。如果下载指示器长时间挂在屏幕上,那么在超时结束时,我们只需继续等待它消失。
方法不理想。它的主要缺点是增加了总测试 运行 时间。但是,该方法是通用的,可以让您处理问题中描述的两种情况。