`
atusoft
  • 浏览: 55548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

selenium测试ajax动态创建页面元素的方法

阅读更多

因为waitForPageToLoad只能当页面提交后才会执行, 所以当ajax添加了页面元素后,无法判断程序是否正确执行,而selenium-rc又没有waitfor()方法, 于是就写了一个方法

public void waitForElementLoad(final String waiting) {
		new Wait() {
			public boolean until() {
				return user.isElementPresent(waiting);
			}
		}.wait(waiting + " not found", 50000);

	}
 
分享到:
评论
2 楼 zhoche2008 2009-12-10  
按你的方法写完后执行就报错了
1 楼 zhoche2008 2009-12-10  
com.thoughtworks.selenium.SeleniumException: ERROR: Command execution failure. Please search the forum at http://clearspace.openqa.org for error details from the log window.  The error message is: 没有权限
at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:262)
at com.thoughtworks.selenium.HttpCommandProcessor.getBoolean(HttpCommandProcessor.java:335)
at com.thoughtworks.selenium.DefaultSelenium.isElementPresent(DefaultSelenium.java:503)
at test.TestPage2$1.until(TestPage2.java:46)
at com.thoughtworks.selenium.Wait.wait(Wait.java:74)
at com.thoughtworks.selenium.Wait.wait(Wait.java:59)
at test.TestPage2.waitForElementLoad(TestPage2.java:48)
at test.TestPage2.test1(TestPage2.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

相关推荐

    Selenium 模拟浏览器动态加载页面的实现方法.pdf

    Selenium提供了解决这一问题的方法,下面我们将详细探讨如何使用Selenium模拟浏览器动态加载页面。 首先,我们需要理解动态加载页面的工作原理。许多现代网站使用AJAX技术来提高用户体验,通过在用户滚动页面时逐步...

    selenium-06-ajax的介绍.ev4.rar

    7. **最佳实践**:可能还会分享一些使用Selenium测试Ajax应用的最佳实践,包括性能优化、测试代码的可维护性和可扩展性。 通过这个教程,开发者和测试工程师可以提升在处理Ajax技术网页的自动化测试技能,确保Web...

    selenium-08-ajax的使用法术post请求.ev4.rar

    Ajax,全称Asynchronous JavaScript and XML,是用于创建动态网页的技术,能够实现页面局部更新,无需刷新整个页面即可与服务器交换数据。 在“selenium-08-ajax的使用法术post请求.ev4.rar”这个资源中,我们聚焦...

    Selenium Documentation

    - **测试 Ajax 应用程序**:考虑到 Ajax 应用程序的特点,设计专门的测试方法。 - **UI 映射**:建立用户界面元素与测试脚本之间的映射关系,简化测试脚本的编写和维护。 综上所述,Selenium 不仅是一个强大的 Web ...

    Selenium使用文档压缩包

    书中可能会讲解如何创建测试用例,执行基本的元素定位,以及如何处理动态元素和异步加载的页面。此外,还可能涉及Selenium Remote Control (RC),它是早期Selenium的一个组件,允许用户在各种浏览器和平台上运行测试...

    selenium介绍.html

    这样,测试脚本可以模拟用户的各种操作,如点击按钮、填写表单、选择下拉项等,同时,Selenium还可以捕获页面状态,进行断言验证,确保应用功能的正确性。 **Selenium 的应用场景** 1. **功能测试**:Selenium 最...

    selenium的jar包

    学习Selenium,你需要了解如何创建WebDriver实例,定位网页元素(如通过XPath、CSS选择器等方法),执行各种操作(如点击、输入、提交表单等),以及如何处理页面元素的状态和事件。此外,还可以利用Selenium的等待...

    java操作selenium+chrome解析动态网页

    Java操作Selenium与Chrome解析动态网页是一个常见的自动化测试和数据抓取场景,主要涉及三个关键技术:Selenium WebDriver、Java编程语言以及Google Chrome浏览器。这里我们将深入探讨这些技术及其在动态网页解析中...

    Selenium深入浅出1.2.pdf

    - **编写测试方法**:利用 Selenium 提供的方法模拟用户操作,如 `selenium.open()` 打开页面、`selenium.select()` 选择选项等。 - **示例代码**: ```java package com.example.tests; import ...

    Selenium Testing Tools Cookbook

    4. **高级测试技术**:介绍如何处理动态元素、模拟用户行为(如鼠标移动、键盘操作)、处理弹窗对话框、处理Ajax异步加载等内容,提升测试脚本的复杂性和可靠性。 5. **测试数据管理**:讲解如何使用数据驱动测试,...

    selenium整套入门学习资料-ppt及代码源码 -及涉及工具

    在实际项目中,为了使测试脚本更加健壮和适应变化,还需要学习如何处理动态元素、弹框、AJAX异步请求等复杂情况。这可能涉及到页面对象模型(Page Object Model)的设计模式,它可以提高代码的可维护性和复用性。 ...

    Selenium文档 v1.0(英文)

    - **AJAX应用等待**:专门针对AJAX应用中的动态加载元素提供了等待命令。 - **流控制**:通过if、while等命令实现逻辑分支和循环结构。 - **存储变量**:使用store、storeEval等命令来存储值或计算表达式的返回值到...

    用Python写爬虫之selenium大法(csdn)————程序.pdf

    Selenium 是一个强大的Web自动化测试工具,但同时也被广泛用于网络爬虫开发,特别是在处理动态网页时。它允许程序员模拟真实用户在浏览器中的操作,包括点击、滚动、填写表单等,从而获取所需的数据。在传统的爬虫...

    C# 使用Selenium模拟浏览器获取CSDN博客内容

    例如,对于动态加载的内容,可能需要等待特定元素出现,或者使用`ExecuteScript`执行JavaScript来强制页面加载完成。 总之,通过C#和Selenium WebDriver,我们可以构建一个强大的自动化工具,模拟用户行为,有效...

    Selenium官方开发文档(英文原版)

    - **Selenium命令介绍**:Selenium提供了丰富的命令集用于模拟用户操作和验证页面元素。 - **测试套件**:组织多个测试用例成为一个有序的测试流程,便于管理和运行。 - **常用命令**:例如打开网页、点击按钮、输入...

    Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版).pdf 清晰中文完整版

    本书将介绍如何在Django项目中集成JavaScript,使用它来增强用户体验,例如通过AJAX实现页面异步更新,或者利用JavaScript库和框架(如React或Vue.js)构建单页应用。同时,书里也会讲解如何进行前端测试,包括使用...

    知网-基于Chrome的selenium实现知网爬虫.zip

    在Python代码中,这通常涉及`find_element_by_*`系列方法,如`find_element_by_id`、`find_element_by_name`等,来定位页面元素,再调用`send_keys()`发送按键事件,最后用`click()`模拟点击。 登录成功后,我们...

    RobotFramework-Selenium2Library中文版 V1.0

    此外,文档还提到了处理AJAX页面时的等待页面关键字,这些关键字可以用来确保页面已经加载了所有必要的内容,比如动态加载的数据。 在与其他界面元素交互方面,文档列举了多种类型元素的关键字,如Element(元素)...

    Python爬虫-Selenium

    Python爬虫技术在数据获取和自动化测试领域中扮演着重要角色,Selenium 是一个功能强大的浏览器自动化工具,常被用于模拟真实用户操作,比如点击、输入等。在Python中使用Selenium可以方便地进行网页动态内容的抓取...

    基于selenium的淘宝爬虫系统.zip

    5. **页面元素操作**:使用Selenium提供的API,如`find_element_by_XXX`系列方法,定位页面上的特定元素,如商品名称、价格、评价等。 6. **数据提取**:一旦找到所需元素,可以使用`text`属性获取其文本内容,或者...

Global site tag (gtag.js) - Google Analytics