Watin - 如何设置文本区域(HTML 编辑器)的值?

发布于 2024-12-13 17:47:29 字数 454 浏览 3 评论 0原文

我正在尝试使用以下代码设置文本字段的值:

if (ie.TextField(Find.ById("testField")).Exists)
   ie.TextField(Find.ById("testField")).Value = "Test";

代码通过而不会引发错误,但是文本字段未填充该值。

当我执行以下行时,出现异常:

ie.TextField(Find.ById("testField")).Focus()

The textarea is a tiny_mce editor and the one of the html attribute is: style="display: none;"...

任何想法如何修改使用 Watin 这样的字段有什么价值?

谢谢。

I'm trying to set the value of a textfield using the following code:

if (ie.TextField(Find.ById("testField")).Exists)
   ie.TextField(Find.ById("testField")).Value = "Test";

The code passes without raising an error, however the textfield is not filled with the value.

I get an exception when I execute the following line:

ie.TextField(Find.ById("testField")).Focus()

The textarea is a tiny_mce editor and one of the html attributes is: style="display: none;"...

Any ideas how I can modify the value of such a field using Watin?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独夜无伴 2024-12-20 17:47:29

首先tinymce不是一个textarea。 tinymce 在初始化时隐藏文本区域并创建一个可内容编辑的 iframe,然后用于允许文本编辑、样式设置等...
其次,如果您想将编辑器内容写回到隐藏的文本区域,您可以使用
tinymce.get('testField').triggerSave();

设置文本区域值的另一种方法是:
tinymce.get('testField').getDocumentById('testField').value = 'new value';

如果您想将内容直接写入tinymce编辑器,您可以选择以下选项

tinymce.get('testField').setContent('my_new_content'); // replaces the editors content

tinymce.get('testField').execCommand('mceInsertContent',false, 'my_content_to_be_added'); // adds the content at the carat postion

First tinymce is not a textarea. tinymce hides your textarea on initialization and creates a contenteditable iframe which is then used to allow text editing, styling aso...
Second if you want to write the editors content back to the hidden textarea you may do this using
tinymce.get('testField').triggerSave();.

Another way to set the value of your textarea is:
tinymce.get('testField').getDocumentById('testField').value = 'new value';

In case you want to write content directly to your tinymce editor you may choose on of the following

tinymce.get('testField').setContent('my_new_content'); // replaces the editors content

or

tinymce.get('testField').execCommand('mceInsertContent',false, 'my_content_to_be_added'); // adds the content at the carat postion
江南烟雨〆相思醉 2024-12-20 17:47:29

这是使用 Watin Eval 函数处理此问题的简单方法:

var js = "tinyMCE.get('body').setContent('" + bodyCont + "')";
var s = ie.Eval(js);

body”需要替换为被tinymce隐藏的文本区域的id - 在浏览器窗口中执行“查看源代码”以找到这个id。

Here is a simple way to handle this using the Watin Eval function:

var js = "tinyMCE.get('body').setContent('" + bodyCont + "')";
var s = ie.Eval(js);

'body' needs to replaced with the id of the textarea that is hidden by tinymce - do a "view source" in your browser window to find this id.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文