论坛首页 编程语言技术论坛

selenium和ajax的测试问题

浏览 8300 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-13  
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
   发表时间:2007-08-15  
知道了,可以这样用:
ruby 代码
 
  1. @selenium.wait_for_condition("var allText=selenium.page().bodyText(); var expected_text='上海市'; allText.indexOf(expected_text)>=0;",30000)    

但是selenium-server不能执行rails的remote_function生成的ajax: new Ajax.Request ()也即Prototype.js Ajax object而
导致Exception: Timed out

我还注意到了一个问题,selenium-server跑测试的时候没有加载图片和css样式。
所以,可能也加载不到javascript文件,包括Prototype.js。因而导致无法执行ajax


  • 大小: 291.7 KB
0 请登录后投票
   发表时间: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上了
0 请登录后投票
   发表时间: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.
0 请登录后投票
   发表时间:2007-08-16  
wait_for_text_present
0 请登录后投票
   发表时间: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很不一样
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics