0

我正在尝试在某个字段中输入完整的字符串,但 type 函数并未写入所有文本。

我有一个文本字段的对象,我正在尝试用类型函数填充它。出于某种原因,type 函数只写入了部分文本。首先,我删除所有以前的文本,然后使用 type 函数键入新文本。

InputAreaObj.Type micCtrlDwn + "a" + micCtrlUp 'select the text
InputAreaObj.Type  micDel   'remove it
InputAreaObj.Click 0,0          'click on the object
InputAreaObj.type CodeToExecute  'type the string

我只想显示文本,充满它而不是它的一部分。我尝试使用 split 将字符串分隔为数组,但它不起作用。谢谢!

4

1 回答 1

1

Type() 方法可能受到键盘缓冲区、重复率和/或简单字符代码序列的限制——类似于 WScript.Shell 对象的 SendKeys() 方法。也就是说,您可能需要在使用 Type() 方法发送每个字符之间等待(睡眠)。

例如,尝试将上面的最后一行替换为以下内容:

For i = 1 To Len(CodeToExecute)
    InputAreaObj.Type Mid(CodeToExecute, i, 1)
    WScript.Sleep 500
Next

此示例一次将一个字符发送到您的 InputAreaObj,同时给它足够的等待时间来处理和呈现每个接收到的字符。

请记住,如果您的 InputAreaObj 呈现 HTML 之类的标记,那么 CodeToExecute 中包含的字符可能会“隐藏”部分文本(取决于提供的标记),从而产生 InputAreaObj 实际上没有收到所有内容的错觉人物,事实上它确实如此。

希望这可以帮助。

于 2019-09-15T13:48:51.610 回答