首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium-IDE:如何验证/断言页面刷新

Selenium-IDE:如何验证/断言页面刷新
EN

Stack Overflow用户
提问于 2013-09-05 13:02:55
回答 4查看 13.7K关注 0票数 2

我在页面上有一个链接,当点击这个页面时,它会刷新这个页面。

如何使用Selenium-IDE验证页面确实已被刷新/重新加载?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-06 09:41:10

我通过断言页面上最初存在的元素在刷新后立即不出现在页面上,然后等待页面完全刷新,并断言元素再次出现,从而解决了这个问题。

  1. 刷新链接/按钮上的refreshAndWait /或clickAndWait
  2. assertElementNotPresent somePageSpecificElement /检查刷新是否真正执行
  3. 2000 to /等待刷新结束
  4. assertElementPresent somePageSpecificElement /检查是否真正执行了刷新并加载了相同的页面

更新:如果存在一些textbox元素,也可以很容易地验证页面刷新。只需使用type命令将一些文本插入到textbox字段中,然后刷新页面,文本框内的文本应该返回到原来的状态。

票数 5
EN

Stack Overflow用户

发布于 2013-09-05 13:25:22

简单的方法是等到页面上的最后一个元素。

在Selenium-IDE中,您可以使用大量的等待*-命令来完成这一任务,例如:

waitForElementPresent element_xPath

waitForVisible element_xPath

诸若此类。

票数 2
EN

Stack Overflow用户

发布于 2017-02-14 13:55:49

如果像我一样,您发现检查元素的可见性和不可见性可能是不可靠的,那么还有一种选择。

如果您的网站使用jQuery,我发现最可靠的方法是检查jQuery.active的状态以确定页面刷新。

例如,在C#中,我使用以下方法:

代码语言:javascript
复制
public bool CheckPageHasRefreshed()
    {
        try
        {
            // Wait for jQuery to become active (the page is refreshing)
            wait.Until(x => (((IJavaScriptExecutor)WebDriver).ExecuteScript("return jQuery.active != 0")));
            // Wait for jQuery to become inactive (the page refresh has completed)
            wait.Until(x => (((IJavaScriptExecutor)WebDriver).ExecuteScript("return jQuery.active === 0")));
            return true;
        }
        catch (WebDriverTimeoutException)
        {
            return false;
        }
    }

这是因为只有当页面上的所有后端加载活动完成后,jQuery.active才会返回0。如果事情还在幕后发生,那就不会了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18637123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档