3

我正在使用机器人框架自动化网页。该页面有不寻常的文本字段,它们接收自动输入(不是占位符值),以防输入无效值。

这是文本字段:

<div class="bound_value">
	<input id="ember475" size="5" type="text" class="ember-view ember-text-field">
	<input id="ember476" type="checkbox" class="ember-view ember-checkbox">
</div>

我尝试使用Input TextPress Key处理。我是一个初学者程序员,所以请原谅我的措辞。

  • 使用Input Text:行为就像我单击该字段,清除内容,按 Enter 然后输入值。

  • 使用Press Key的行为就像我单击字段添加刚刚输入的输入添加到我已经包含的内容一样。

Clear Element Text + Press Key的工作方式与Input Text相同。

我需要一种方法来单击文本字段,删除内容,不按 enter,输入文本,然后按 enter。

如何使用 RIDE 自定义库来做到这一点?

预先感谢您的努力。

4

2 回答 2

6

您是否尝试过使用关键字Clear Element Text

 Clear Element Text  xpath=//input[@id='ember475']

更多信息在这里http://robotframework.org/Selenium2Library/doc/Selenium2Library.html#Clear%20Element%20Text

于 2016-07-15T09:34:10.210 回答
1

这可能对您有用:

*** Keywords ***
Clear Field Of Characters
    [Arguments]    ${field}    ${character count}
    [Documentation]    This keyword pushes the delete key (ascii: \8) a specified number of times in a specified field.
    :FOR    ${index}    IN RANGE    ${character count}
    \    Press Key    ${field}    \\8

Input Into Text Field
    [Arguments]    ${field}    ${text}
    [Documentation]    Keyword is just an input text keyword. That clears the text field dynamically.
    ${field text}=    Get Value    ${field}
    ${field text length}=    Get Length    ${field text}
    Clear Field of Characters    ${field}    ${field text length}
    Press Key    ${field}    ${text}

一旦输入了所有文本,这不会做的部分是在字段中输入。您可以将以下内容附加到末尾,或者之后在单独的电话中完成。

Press Key    ${field}    \\13    #I believe 13 is the ascii for carriage return, \n may work as well.
于 2016-07-18T11:57:30.137 回答