使用appium自动登录过程时,密码和用户名将在用户名的相同字段中

时间:2017-02-01 10:56:34

标签: android selenium appium

虽然测试清晰简单,但在发送密钥(用户名;密码)时,我总是面临同样的问题,密码字段代替用户名编写!

这里我的测试NG我正在使用appium进行测试

@Test
    public void Test1() throws InterruptedException {
        System.out.println("newlook-tutoriel");
        driver.findElement(By.id("skip")).click();
        System.out.println("newlook-welcome");
        driver.findElement(By.id("btn_signin_welcome")).click();
        System.out.println("newlook-Me connecter");
        driver.findElement(By.id("input_email")).sendKeys("e@e.emma.com");
        driver.findElement(By.id("input_password")).sendKeys("00000000");
        System.out.println("connected !!!!");
    }
  

我得到了用户名= e@e.emma.com00000000

3 个答案:

答案 0 :(得分:2)

这是一个奇怪的问题。但这是解决方案。

public void hideKeyBoard()
{
    try{driver.hideKeyboard();}
    catch(Exception e){}
}

使用上述方法隐藏键盘

    driver.findElement(By.id("input_email")).click();

    driver.getKeyboard().sendKeys("e@e.emma.com");

    hideKeyboard();

    driver.findElement(By.id("input_password")).click();

    hideKeyboard();

    driver.getKeyboard().sendKeys("00000000");

希望这会有所帮助:)

答案 1 :(得分:0)

这可能是时间问题,只是为了测试尝试在设置用户名之后放置Thread.sleep(5000);,然后尝试设置密码并查看会发生什么。

这很奇怪,但它发生在我的情况下,有时我的firefoxdriver在错误的字段中写道,即使所有字段都是唯一且成功找到的。两个sendKeys()次呼叫之间的小时间跨度解决了这个问题。我没有使用睡眠,简单验证如果在这两个调用之间的字段中写入正确的文本是足够的时间,以便下一个sendKeys()写入正确的字段。

答案 2 :(得分:0)

最后我通过添加到我的代码解决了这个问题:

driver.hideKeyboard();

问题是因为键盘隐藏了密码字段!