我需要将包含一些特殊“不可打印”ASCII字符的字符串插入到文本框中,但经过多次尝试后,它总是只插入普通字符串而不带任何特殊字符。
我们来谈谈“垂直标签”,这会在经过测试的应用程序中产生一些麻烦。所以我需要将对应于pythonic chr(11)
的值插入到文本框中(二进制ASCII代码为00001011
,unicode应为\u000b
)。
我准备了一个函数返回我需要的Python字符串,从Robot调用它并尝试将其插入到文本框中。但它总是只插入没有特殊字符的字符串。
这是Python函数:
def do_string_not_printable_chars():
string = 'first'+chr(11)+'last'
return string
然后我从机器人那里叫它:
${string}= do string not printable chars
log to console ${string}
input text ${element} ${string}
Save Data
在控制台正确的字符串中打印了CONTAINING特殊字符(first♂last
),但在实际文本框中只有"firstlast"
没有特殊字符。
如果我从控制台手动复制字符串并粘贴到文本框中,它将插入特殊字符并且已测试的应用程序失败:)
我试图将它直接粘贴为机器人中的unicode值:
log to console \u000b
input text ${element} \u000b
Save Data
结果是一样的 - 在控制台中我可以看到打印的特殊字符,但是在文本框中没有插入这样的字符。
我也尝试了Decode Bytes to String
或Encode String to Bytes
的各种组合,但结果又一样......例如:
${value}= encode string to bytes \u000b ASCII
log to console ${value}
input text ${element} ${value}
Save Data
感谢您的帮助!
答案 0 :(得分:0)
听起来input text
会逐个字母地写出这个字符串。在您正在测试的GUI中键入时,\u000b
可能无法执行任何操作?
我现在没有系统检查它,但也许Press Key
会有所帮助。像这样:
log to console \\11 press key ${element} \\11 Save Data