我有一个有很多Ajax的站点,需要自动化。但是,我无法正确记录网站的Ajax部分。我尝试了Waitfor关键字,但失败了。我也浏览了以下网站 http://www.ibm.com/developerworks/opensource/library/os-webautoselenium/index.html, ,但无法分析如何将代码应用于myeclipse。

有人在如何测试AJAX应用程序上有一些好的教程吗?

提前致谢

有帮助吗?

解决方案

Ajax有点混乱,并与硒合作。您的问题没有简单的答案,但我有一些提示。

您将需要使用很多此类循环来等待操作/更新等:

        for (int second = 0;; second++) {
        if (second >= 60) log.error("Timeout (60 seconds) while submitting request");
        try { if (selenium.isElementPresent("elementID")) break; } catch (Exception e) {}
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

此外,启用AJAX的页面也有很多次事件触发了要输入文本框的字符,然后 selenium.type("elementID", "12345"); 不会为您服务。这 typeKeys("elementID", "12345"); 会解雇活动。

使用Firefox和Firebug,使用JavaScript调试器分析背景中发生的情况。我确实更喜欢使用Chromes检查调试器。与您的开发人员交谈,以了解某些元素等触发的内容。

其次,您可以查看最新版本的Selenium 2.0。 Web驱动程序应该可以更好地处理AJAX请求,但我还没有时间与之合作。

因此,简而言之,您将不得不按照自己的自我编写很多代码并修改记录的零件。如果不奏效一些商业化的零件,这些商业方法可以更好地处理某种类型的Ajax。

其他提示

如果您使用的是XPath,则它将无法正常工作。尝试CSS定位器。我正在RC中使用Sizzle.js定位器,并且在所有AJAX元素中都可以很好地工作。

对于IDE,您可以使用可用的插件或编写自己的插件,并使用用户extensions.js选项插入它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top