hu_lynn 发表于 2010-8-12 18:02:32

Selenium 如何在文本域textarea中写入内容?

我写的是:
selenium.type("xpath=//textarea[@id='propJournal.content']", "测试房源内容");//房源内容输入文本
我使用type方法,给textarea输入内容,后台不报错,也不执行。
我想实现的就是给文本域写入内容。我找了些资料,好像要获得焦点什么的,但是我不会写,本人才开始用java尝试写selenium rc不久。
请哪位能贴点代码出来给我共享学习下。
谢谢啦!

[ 本帖最后由 hu_lynn 于 2010-8-12 18:03 编辑 ]

hu_lynn 发表于 2010-8-13 09:32:18

早上来问了技术才知道,这个textarea本身是有默认值的,默认值下方是加载的一个FCK编辑器,在编辑器加载完后会清空赋给textarea的值。所以昨天给textarea赋值,就是看不到效果,以为是没有赋值上。
源码是这样的:
<textarea id ="propJournal.content" name ="propJournal.content"rows="10" cols="74">编辑框加载中,请稍等...</textarea>
<script type="text/javascript" src="http://css.mysupa.com/fckeditor/fckeditor.js">

解决办法是,先加载FCK的js。等js加载好了,在给编辑框赋值,这样就不会给清空了。
selenium的代码我是这样写的:
selenium.runScript("FCKeditorAPI.GetInstance('propJournal.content').SetHTML('hello, world')");
这样运行下来,编辑器就被赋值了。能正常运行。:victory:

wugecat 发表于 2010-8-13 11:18:59

多谢分享

dhh45 发表于 2010-8-17 15:13:16

请问,如何加载FCK的js在java代码中;
现在运行selenium.runScript("FCKeditorAPI.GetInstance('propJournal.content').SetHTML('hello, world')");页面报脚本错误,说FCKeditorAPI未定义

hu_lynn 发表于 2010-8-18 15:45:08

回复 4# 的帖子

FCKeditorAPI未定义,应该是在你运行selenium.runScript("FCKeditorAPI.GetInstance('propJournal.content').SetHTML('hello, world')");之前JavaScript没有加载,调用次序问题,导致调用未加载的函数发生错误。
解决方法有两种,一是确保调用javascript在函数定义之后;
二是在调用前判断页面是否加载完毕,加载完毕了再调用,使用waitforload函数等待页面加载。
呵呵,我只是猜测,你可以试试。

dhh45 发表于 2010-8-20 13:43:08

首先谢谢你回复我.
我现在很困惑.
我的环境是:Ecplise+junit+Selenium
创建一个工程,工程中创建测试一个页面(包括FCK)的java文件,该文件包含测试代码,自然包括selenium.runScript("FCKeditorAPI.GetInstance('propJournal.content').SetHTML('hello, world')");,运行结果报FCKeditorAPI未定义.
疑惑的地方是:我的工程没有引用FCKeditor的JS,我就使用FCKeditorAPI,自然报FCKeditorAPI未定义,可是我不知道如何在我的工程中加载,具体说怎么加载FCKeditor的JS到我的工程
另:FCKeditor的JS是不是下载压缩包中的fckeditor.js????
页: [1]
查看完整版本: Selenium 如何在文本域textarea中写入内容?