我需要將包含一些特殊的「不可打印」ASCII字符的字符串插入到文本框中,但經過多次嘗試後,它總是插入普通字符串而沒有任何特殊字符。 讓我們來談談「垂直選項卡」,它會在測試的應用程序中造成一些麻煩。所以我需要在文本框中插入對應於pythonic chr(11)
的值(二進制ASCII碼是00001011
,unicode應該是\u000b
)。 我準備了一個函數,它返回我需要從Python獲取的字符串,並從Robot中調用它,並試圖將其插入到文本框中。但它總是插入沒有特殊字符的字符串。 這是Python函數:機器人框架或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
在控制檯正確的字符串包含特殊字符打印(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
感謝您的幫助!
嘗試通過在'輸入文本'中使用變量本身,而不是它的值 - 例如'input text $ {element} $ string';這應該保留特殊符號一直沿着命令的硒執行。 – Todor
我不知道我明白...傳遞變量本身是我嘗試'輸入文本$ {元素} $ {字符串}'的第一個選項,它不起作用 – neliCZka
這有點不同 - 以'$ {variable } RF將採用變量的值,並將其用作字符串。另一方面,'$ variable'(不包括大括號)的形式是「告訴」RF使用變量本身。一些僞python代碼爲例 - 'variable = 4;打印( '4');打印(變量)' - 第一次調用打印字符串4 - 這是RF將用「$ {variable}」替代的,而第二次 - 將打印變量'變量'本身 - RF調用'$ {a} '。 – Todor