在现场输入文字的替代方法

时间:2019-04-08 17:07:12

标签: appium robotframework

我需要在iOS Emulator上测试此登录表单,但是当我尝试在元素'//input[@name="email"]'上插入文本时,将放置文本,但是当我选择元素'//input[@name="password"]'时,第一个元素中的文本将消失,当我按下'//div[@id="react-component-login-header']//button/div/span[1]"元素时也会发生同样的情况。

我认为问题与文本输入方式有关,因为使用Selenium2Library(用于桌面)不会出现此问题。

还有其他方法可以在字段上插入文本吗?在使用其他库或在Python上创建关键字来辅助测试时,我没有任何问题(已经在其他测试中做到了)。

我已经尝试过:

  • 输入文字

  • 输入值

  • 输入密码(我知道,但是我需要尝试其他操作)

*** Settings ***
Library           Dialogs
Library           AppiumLibrary

*** Variables ***
${defaultTimeout}    15s

*** Test Cases ***
TC001
    [Setup]    Configuration
    Start Test
    Wait Until Page Contains Element    //*[@id='age-gate-yes']    ${defaultTimeout}
    Click Element    //a[@id='age-gate-yes']
    Wait Until Page Contains Element    //a[@href="/profile"]    ${defaultTimeout}
    Click Element    //a[@href="/profile"]
    Wait Until Page Contains Element    //input[@name="email"]    ${defaultTimeout}
    Click Element    //input[@name="email"]
    Input Text    //input[@name="email"]    johndoe@john.doe
    Click Element    //input[@name="password"]
    Input Text    //input[@name="password"]    JohnDoe123
    Click Element    //div[@id='react-component-login-header']//button/div/span[1]
    Wait Until Page Does Not Contain Element    //div[@id='react-component-login-header']//button/div/span[1]    ${defaultTimeout}
    [Teardown]    End Test

我可以看到文本写在字段上,但是当该元素的上下文丢失时,文本也是如此。

1 个答案:

答案 0 :(得分:0)

对于Android,我使用关键字“ AppiumLibrary.Press Keycode”解决了问题

例如,发送“ AppiumLibrary.Press键码67”,我设法发送退格键

https://developer.android.com/reference/android/view/KeyEvent.html