很多網(wǎng)站使用了WYSIWYG Editor來輸入文本。Watir內(nèi)置了一些方法可以對其進(jìn)行處理:
一種是先查找到editor所在的iframe,然后使用send_keys的方法來發(fā)送字符串,需要注意的是,包含該iframe的窗口必須是在所有的窗口上方.
另外一種方式是書寫一段javascript語句,通過對browser進(jìn)行內(nèi)容輸入,這種方法常見
例如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發(fā)送字符
而使用TinyMCE Editor的例子,是執(zhí)行一段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'