如何使用Selenium记录基于ajax的站点

如何使用Selenium记录基于ajax的站点,ajax,selenium,selenium-ide,selenium-grid,Ajax,Selenium,Selenium Ide,Selenium Grid,我有一个网站,其中有大量的ajax,并需要自动化。但是,我不能正确地记录网站的ajax部分。我尝试了waitfor关键字,但失败了。我也浏览了下面的网站,但无法理解如何将代码应用于MyEclipse 有人有关于如何测试ajax应用程序的好教程吗 提前感谢Ajax使用Selenium有点混乱。你的问题没有简单的答案,但我有一些建议 您需要使用大量这些循环来等待操作/更新等: for (int second = 0;; second++) { if (second &

我有一个网站,其中有大量的ajax,并需要自动化。但是,我不能正确地记录网站的ajax部分。我尝试了waitfor关键字,但失败了。我也浏览了下面的网站,但无法理解如何将代码应用于MyEclipse

有人有关于如何测试ajax应用程序的好教程吗


提前感谢

Ajax使用Selenium有点混乱。你的问题没有简单的答案,但我有一些建议

您需要使用大量这些循环来等待操作/更新等:

        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”)不会为您更改它。
类型键(“elementID”,“12345”)将触发事件

使用FireFox和firebug,使用javascript调试器分析后台发生的事情。我更喜欢使用Chromes Inspect调试器。与开发人员交谈,找出某些元素等的触发因素

其次,您可以看看Selenium 2.0的最新版本。web驱动程序应该能够更好地处理Ajax请求,但我还没有时间使用它


所以简而言之,您必须自己编写大量代码并修改记录的部分。。如果有些商业应用程序不能更好地处理某种类型的Ajax,那么它就不起作用了。

如果您使用的是XPath,那么它就不起作用了。试试CSS定位器。我在RC中使用了Sizzle.js定位器,它在所有ajax元素中都运行良好

对于IDE,您可以选择可用的插件,也可以编写自己的插件,并使用user-extensions.js选项进行插件