`
温柔一刀
  • 浏览: 860634 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

selenium和ajax的测试问题

阅读更多
Hi,all
I am having doubts in selenium and ajax.
比如:我选择省份,需要等待一点时间才会出现省份下面的市,我才能选择县市,县市是通过选择省份之后触发ajax异步加载的,所以需要等待一点时间,我试着用wait_for_page_to_load()等待,会抛出Time out异常,后来又发现了wait_for_condition(),我就试着用了:
ruby 代码
 
  1. require "functional_test_case"  
  2. class FeedbackTest < FunctionalTestCase  
  3.   def test_view_feedback  
  4.     login_sh5  
  5.     @selenium.click "link=客户反馈信息列表"  
  6.     wait_default     
  7.     @selenium.type "customer_name""常相聚"  
  8.     @selenium.select "province""label=上海"    
  9.     @selenium.wait_for_condition("var allText=@selenium.get_body_text(); var expected_text='上海市'; allText.indexOf(expected_text)==1;",30000)  
  10.     @selenium.select "city""label=上海市"  
  11.     @selenium.select "customer_type""label=酒店"     
  12.     @selenium.select "time_period""label=本月"  
  13.     @selenium.click "//input[@type='image']"  
  14.     wait_default  
  15.     @selenium.is_text_present("反馈信息内容")  
  16.   end  
  17. end  

结果:Exception: 对象不支持此属性或方法
我觉得是@selenium.wait_for_condition("var allText=@selenium.get_body_text(); var expected_text='上海市'; allText.indexOf(expected_text)==1;",30000)这里不能识别@selenium,但是我看到指南上都是这样用的,难道我错了?

因为大量应用了ajax效果,所以不解决此问题很多测试都无法进行

Thanks in advance
分享到:
评论
5 楼 温柔一刀 2007-08-16  
gigix 写道
wait_for_text_present


wait_for_text_present在selenium RC里面没有,它在Selenium on Rails里面

但是我没用Selenium on Rails

Selenium on Rails是不是已经包含selenium ruby?

但是貌似语法格式跟selenium RC很不一样
4 楼 gigix 2007-08-16  
wait_for_text_present
3 楼 温柔一刀 2007-08-16  
I can't seem to use Selenium Core to upload a file; when I try to type in the file upload text field, nothing happens!

    Unfortunately, this is yet another JavaScript security restriction; JS is not allowed to modify the value of <input type="file"> form fields. You can work around this by running your tests under Selenium IDE or under Selenium RC running in the experimental "*chrome" mode for Firefox, but at present there is no way to do this on any other browser. This is filed as bug SEL-63, but there may be no way to fix it in Selenium Core.
2 楼 温柔一刀 2007-08-16  
用了变态的方式解决了
<%= javascript_include_tag :defaults %>

这是导入需要的所有js文件,但是selenium-serve不能加载到
加上http://localhost:3000/,也就是sever地址
<script src="http://localhost:3000/javascripts/prototype.js" type="text/javascript"></script>

这样selenium-server就可以把js文件loaded上了
1 楼 温柔一刀 2007-08-15  
知道了,可以这样用:<br/>
<div class='code_title'>ruby 代码</div>
<div class='dp-highlighter'>
<div class='bar'> </div>
<ol class='dp-rb' start='1'>
    <li class='alt'><span><span class='variable'>@selenium</span><span>.wait_for_condition(</span><span class='string'>"var allText=selenium.page().bodyText(); var expected_text='上海市'; allText.indexOf(expected_text)&gt;=0;"</span><span>,30000)    </span></span></li>
</ol>
</div>
<br/>
但是selenium-server不能执行rails的remote_function生成的ajax:<span class='attribute-value'> new Ajax.Request</span> ()也即Prototype.js Ajax object而<br/>
导致Exception: Timed out<br/>
<br/>
我还注意到了一个问题,selenium-server跑测试的时候没有加载图片和css样式。<br/>
所以,可能也加载不到javascript文件,包括Prototype.js。因而导致无法执行ajax<br/>
<br/>
<br/>
<img src='http://www.iteye.com/topics/download/625f81c7-0c58-4a0e-b5b5-8c5901b8ce2a' alt=''/>

相关推荐

    Selenium自动化测试:基于Python语言.rar

    详细讲解了Selenium的基础知识、安装配置、元素定位方法(如CSS选择器、XPath、ID、Name等)、各种操作(如点击、输入、截屏)以及高级用法,如模拟用户事件、处理Ajax异步加载、框架和弹窗处理、测试报告生成等。...

    Selenium自动化测试培训

    Selenium自动化测试培训旨在提供全面的知识和技能,帮助学员掌握Selenium工具的使用,自动化测试脚本的设计,以及自动化测试框架的构建。 ### 自动化测试基础 在开始学习Selenium之前,理解自动化测试的基本原理至...

    自动化测试框架RobotFramework+Selenium2

    Selenium2Library 提供了多种测试类型,包括浏览器交互测试、表单测试、Ajax 测试等。 Robot Framework 和 Selenium2Library 的集成 Robot Framework 和 Selenium2Library 的集成提供了一个强大 的自动化测试解决...

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

    在这个“selenium-06-ajax的介绍.ev4”教程中,你将深入学习如何使用Selenium来测试和控制使用Ajax技术的网页。视频“selenium-06-ajax的介绍.ev4.mp4”可能会涵盖以下几个关键点: 1. **Ajax基础**:首先,会讲解...

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

    此外,还会涉及Django的测试框架,教你如何编写单元测试和集成测试,以确保你的Django应用能够按照预期工作。 其次,Selenium是一个用于Web应用程序自动化测试的工具,特别适用于浏览器兼容性和用户界面的测试。书...

    Selenium2 Python 自动化测试实战(扫描版)-2019PDF高清带目录(完整版).zip

    《Selenium2 Python 自动化测试实战》是一本专注于使用Python和Selenium2进行Web自动化测试的专业书籍。这本书详尽地介绍了如何利用Selenium2这个强大的工具,配合Python语言,来构建高效、可靠的自动化测试框架,以...

    Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版)》高清文字版,带书签。中英文都有哦!

    《Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版)》是一本详尽探讨如何在Web开发中应用测试驱动开发(TDD)技术的专业书籍。这本书不仅涵盖了Python语言的基础,还深入讲解了Django框架...

    selenium webdirver电子书+代码

    4. **进阶篇**:随着对Selenium理解的深入,书中可能会讲解更复杂的操作,如处理弹出框、模拟键盘和鼠标事件、处理Ajax异步加载页面、实现页面对象模式等,提升测试脚本的可维护性。 5. **实战篇**:项目代码部分...

    Selenium自动化测试用例设计注意事项.doc

    动态元素测试针对那些标识符会变化的元素,而Ajax测试则需关注页面无刷新更新的情况,确保异步操作的正确性。 总之,Selenium自动化测试用例设计需要全面考虑UI元素的处理、测试流程的控制、结果的分析和反馈,以及...

    如何用selenium封装post参数提交示例

    总的来说,Selenium虽然主要设计用于Web UI测试,但通过JavaScript执行和数据解析,它也能有效地封装和处理POST请求,这对于测试涉及异步请求的场景尤其有用。不过,如果仅关注HTTP请求,更推荐使用像`requests`这样...

    Selenium各种案例

    以上只是Selenium部分功能的概述,实际应用中还有更多高级技巧和场景,如模拟鼠标和键盘动作、处理iframe、处理Ajax异步请求等。" Selenium python之学习笔记-示例html文件 "可能包含了这些概念的实际代码示例,通过...

    Selenium_IDE_官方文档翻译.pdf

    通过本文档,读者可以学习如何安装和启动 Selenium IDE,如何使用 Selenium IDE 创建和运行测试用例,如何使用 Selenese 脚本语法编写测试套件等。 一、Selenium IDE 的安装和启动 Selenium IDE 可以从 SeleniumHQ...

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

    在IT行业中,Selenium是一个广泛使用的自动化测试工具,主要用于Web应用程序的测试。...观看此视频将有助于提升你在Selenium和Ajax交互方面的技能,使你能更好地自动化测试包含Ajax功能的Web应用程序。

    Selenium Documentation

    - **Selenium IDE**:是一个 Firefox 插件,用于录制和回放测试脚本,适合于快速原型设计或简单的测试场景。 - **Selenium RC (Remote Control)**:提供了一种方式来控制浏览器行为,并执行测试脚本。RC 支持多种...

    Selenium使用文档压缩包

    读者可以从中学习到如何处理复杂场景,比如模拟用户输入,处理JavaScript弹出框,执行AJAX请求后的测试,或者如何利用Selenium Grid进行分布式测试,以提高测试效率。这本书可能还包括了一些高级话题,如测试设计...

    selenium介绍.html

    **Selenium 概述** Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它支持多种编程语言,如Java、Python...通过熟练掌握Selenium,开发者可以极大地提升测试效率,确保产品的稳定性和可靠性。

    selenium---详细讲解

    Selenium作为自动化Web测试领域的佼佼者,不仅能够处理基本的静态网页测试,还能够有效应对Ajax和Dojo框架带来的挑战。通过使用`Wait`类、`waitForCondition`方法以及针对特定框架的选择器和API,Selenium为测试...

    selenium相关学习资料

    这可能涉及到元素的等待策略,如显式等待和隐式等待,以解决网页加载时间不确定导致的测试失败问题。此外,你还会接触到测试框架的搭建,如使用Page Object模式来提高代码的可维护性和可复用性,以及如何利用TestNG...

Global site tag (gtag.js) - Google Analytics