机器人框架 - 清除元素文本关键字不起作用

mo-*_*-to 4 selenium robotframework

我们有一个 html 结构的文本字段,如下所示。

<input class="css-1npmunl" name="some.name" aria-label="New Employee ID" data-qa="some.data" placeholder="" value="TEST1" type="Text">
Run Code Online (Sandbox Code Playgroud)

内置的 Selenium2Library 关键字Clear Element Text ${Field_Locator}没有按预期清除文本字段。实际上,该字段会被清除片刻,然后当我执行其他一些操作时,例如单击 Save按钮,该字段值将再次使用相同的值 ( TEST1)重新填充(value属性包含该字段的实际值)。

但是当我们手动执行相同的操作时,它会按预期工作。当我使用开发人员工具检查 DOM 时,似乎 Clear Element Text 关键字实际上并没有将value属性的值设为空。但是在手动执行时,该value属性的值会被清空。

Tod*_*kov 5

我遇到过几次相同的问题(React 总是在它的底部!:) 并尝试了不同的方法。按照评论中的建议设置空值有时会起作用,但会随机失败。

最后,我确定了一个“直接”解决方案——发送与当前值长度一样多的退格字符。副作用是这也接近正常的用户交互:); 真正的副作用是这比Clear Element Text通话慢,较长的文本可能需要几秒钟。

以下是如何在 RF 中执行此操作的示例:

${value}=     Get Element Attribute   ${Field_Locator}      value
${backspaces count}=    Get Length      ${value}
Run Keyword If    """${value}""" != ''    # if there's no current value - no need to slow down by an extra SE call
...     Repeat Keyword  ${backspaces count +1}  Press Key  ${Field_Locator}   \\08    # this is the code for the backspace key; "backspaces count +1" - just too be sure :)
Run Code Online (Sandbox Code Playgroud)