理论教育 Selenium2自动化测试:AJAX页面交互

Selenium2自动化测试:AJAX页面交互

时间:2023-10-25 理论教育 版权反馈
【摘要】:AJAX在浏览器与Web服务器之间使用异步数据传输HTTP请求,这样就可以使网页从服务器请求少量的信息,而不是整个页面。使用Selenium IDE测试AJAX页面时会面临的一个问题也正是由于AJAX的异步优势所造成的。下面以jQuery UI中的autocomplete这个demo为例来讲解如何使用Selenium IDE与采用了AJAX技术的页面进行交互,并确保测试用例的正常执行。图2.11 Autocomplete待测试页面使用Selenium IDE完成该测试用例的步骤如下:1)启动Selenium IDE并确保录制键被按下。图2.12 与AJAX页面进行交互的脚本图2.13 waitForTextPresent的Reference信息

Selenium2自动化测试:AJAX页面交互

许多网页应用中大量使用AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术。AJAX在浏览器与Web服务器之间使用异步数据传输HTTP请求,这样就可以使网页从服务器请求少量的信息,而不是整个页面。

使用Selenium IDE测试AJAX页面时会面临的一个问题也正是由于AJAX的异步优势所造成的。由于请求和从服务器返回的数据是异步进行的,所以如果没有合适的等待机制,Selenium IDE很容易因为没有得到需要的数据结果而无法正常执行步骤。下面以jQuery UI中的autocomplete这个demo为例来讲解如何使用Selenium IDE与采用了AJAX技术的页面进行交互,并确保测试用例的正常执行。待测试页面地址

http://jqueryui.com/autocomplete/

这个demo的功能展示了在Tags输入框中输入英文首字母,则会自动弹出备选编程语言列表,然后用户可以通过鼠标或者键盘选择列表中的字段后就自动填充到Tags输入框中,如图2.11所示。

978-7-111-46783-0-Chapter02-11.jpg

图2.11 Autocomplete待测试页面

使用Selenium IDE完成该测试用例的步骤如下:

1)启动Selenium IDE并确保录制键被按下。(www.daowen.com)

2)打开待测试页面。

3)录制的测试用例步骤如图2.12所示。其中waitForText就是为了解决AJAX的异步问题而采用的。

注意,在最新版本的Selenium IDE中,有些老旧的Command不再支持。如waitForTextPresent,最新的命令为waitForText,正如上述测试用例的步骤中所使用的一样。通过查看该命令的Reference就可以看到相关信息,不再支持的命令会标注出来,如图2.13中所示的This command is deprecated.Use the waitForText command with an element locator instead。

978-7-111-46783-0-Chapter02-12.jpg

图2.12 与AJAX页面进行交互的脚本

978-7-111-46783-0-Chapter02-13.jpg

图2.13 waitForTextPresent的Reference信息

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈