`
温柔一刀
  • 浏览: 857471 次
  • 性别: 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自动化验收测试

    如何使用Selenium测试工具对RubyonRails和Ajax应用程序进行功能测试验收测试(也称功能测试)是用来测试手工任务的功能的,但是手工测试这些任务可能很花时间,并且容易出现人为的错误。在本文中,作者为架构师、...

    Selenium扩展Graphene.zip

    Graphene 项目的目的是使用非常性感的类型安全的 API 进行 Ajax 测试,是 Selenium 项目的扩展。 标签:Graphene

    Selenium Design Patterns and Best Practices 最新 原版

    Set up each test to automatically deal with AJAX and jQuery Remove test instabilities by blocking third-party services Deal with data uncertainties by using fixtures, JSON APIs, and API stubbing ...

    Python测试驱动开发:使用Django、Selenium和JavaScript进行Web编程(第2版)

    第一部分介绍了测试驱动开发和 Django 的基础知识,并在每个阶段进行严格的单元测试。第二部分讨论了 Web 开发要素,探讨了 Web 开发过程中不可避免的问题,以及如何通过测试解决这些问题。第三部分探讨了一些高级...

    cpan-selenium-rc-perl:测试-WWW-Selenium Perl Selenium RC 驱动程序

    Test-WWW-Selenium是一个用于 Selenium 远程控制 (SRC) 的 perl 驱动程序和测试库。 您需要设置一个可以启动浏览器的 Selenium 服务器。 Selenium Remote Control (SRC)是一种测试工具,允许您使用任何主流启用 ...

    基于Apache Nutch和Solr的AJAX页面内容爬取与处理设计源码

    该系统通过Apache Nutch和Solr以及Htmlunit, Selenium WebDriver等组件扩展,实现了对于AJAX加载类型页面的完整页面内容爬取、解析、清洗、持久化、全文检索等处理。项目结构清晰,代码注释详尽,适合用于学习和研究...

    网络爬虫–Selenium的使用

    Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常...

    java笔试题高级-wtbox:Web测试盒:SeleniumWebDriver2.0Java最佳实践项目

    测试盒:Selenium WebDriver 最佳实践项目。 该项目展示了 Selenium WebDriver 最佳实践; 它是一个简约的 Selenium 项目,它使 Selenium 工具易于学习和使用,并且可以完成工作。 它目前是用 Java 编写的。 欢迎您 ...

    爬虫爬取taobao搜索页商品基本数据(可翻页)+ selenium + Xpath (爬虫具有时效性)

    利用selenium,手动登录获取cookie保存在本地用于登录平台(便于测试代码),访问商品页url通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据....*** **网页源代码中是没有所需...

    java基础知识点笔试题-cleartriptests:一个有抱负的测试自动化工程师的教程,他们想要掌握Webdriver并寻找测试自动化框架

    该网站是显而易见的选择,因为它具有丰富的控件,如文本框、下拉菜单、日历控件、Ajax 等待等。考虑的场景主要是日常业务用例,其中我们使用了票务预订业务场景,并且具有不同的风格。 您需要具有 Eclipse 或 ...

    Python使用Selenium模拟浏览器自动操作功能

    在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览器的操作,然后获取数据。...

    DrissionPage-爬虫python代码

    因此,这个库将 selenium 和 requests 合而为一,不同须要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。 除了合并两者,本库还以网页为单位封装了常用功能,简化了 selenium 的操作和语句,在...

    python学习day06.txt

    1、selenium : Web自动化测试工具 2、phantomjs :无界面浏览器(在内存执行页面加载) 3、使用步骤 1、导入模块 from selenium import webdriver from selenium.webdriver.common.keys import Keys 2、创建...

    Hybridframework

    className查找元素显示页面标题鼠标悬停在元素上Selenium中JavaScript Selenium中的jQuery Selenium中的Ajax Selenium中的jQuery Log4J示例Java类重要连结官方网站Selenium文件Selenium WebDriver Selenium下载页...

    webdriver-fundamentals-exercises:使用 Webdriver 课程进行自动化 Web 测试的实验室练习

    课程涵盖: 自动化网络测试的基本原则Selenium架构如何(以及何时)使用 Selenium IDE 进行记录/重放风格的 Web 测试自动化WebDriver 基础知识使用 CSS、XPath 识别元素使用 HTML 表单使用 AJAX 和异步页面元素使用...

    Rails之道,完整扫描版

    Ajax、Prototype和Scriptaculous等JavaScript代码库和RJS,Session管理、用户登录和认证系统,XML和ActiveResource,后台处理和ActionMaile,测试和specs(包括RSpec on Rails和Selenium),安装、管理、编写插件,...

    Python3爬虫技术文档(三)——动态页面数据获取

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你...

    wdio-intercept-service::spider_web:在webdriver.io中捕获并断言HTTP ajax调用

    尽管selenium和webdriver用于e2e尤其是UI测试,但是您可能希望评估由客户端代码完成的HTTP请求(例如,当您没有即时UI反馈时,例如在度量标准或跟踪调用中)。 使用wdio-intercept-service,您可以拦截由某些用户...

    robotframework-seleniumlibrary-demo-20110131.zip

    Robot Framework 安装指南 ...使用Robot Framework 测试 Ajax http://blog.sina.com.cn/s/blog_654c6ec70100u456.html 使用Robot framework 测试web http://blog.sina.com.cn/s/blog_654c6ec70100tnt6.html

Global site tag (gtag.js) - Google Analytics