很多网站使用了WYSIWYG Editor来输入文本。Watir内置了一些方法可以对其进行处理:
一种是先查找到editor所在的iframe,然后使用send_keys的方法来发送字符串,需要注意的是,包含该iframe的窗口必须是在所有的窗口上方.
另外一种方式是书写一段javascript语句,通过对browser进行内容输入,这种方法常见
例如CKEditor
require 'watir-webdriver'
b = Watir::Browser.new :firefox
b.goto 'http://ckeditor.com/demo'
b.execute_script("CKEDITOR.instances['editor1'].setData('hello world');")
b.frame(:title => 'Rich text editor, editor1, press ALT 0 for help.').send_keys 'hello world again'
这个例子是向iframe直接通过send_keys发送字符
而使用TinyMCE Editor的例子,是执行一段javascript语句
require 'watir-webdriver'
b = Watir::Browser.new
b.goto 'http://tinymce.moxiecode.com/tryit/full.php'
b.execute_script("tinyMCE.get('content').execCommand('mceSetContent',false, 'hello world' );")
b.frame(:id => "content_ifr").send_keys 'hello world again'