在 Appium Sendkeys 中没有按预期工作,它发送的比我给它的多

Posted

技术标签:

【中文标题】在 Appium Sendkeys 中没有按预期工作,它发送的比我给它的多【英文标题】:In Appium Sendkeys didn't work as expected, it sends more than i give to it 【发布时间】:2016-05-01 14:33:54 【问题描述】:

当我点击以下代码时,我正在使用 Appium 编写 android 应用程序的测试用例

 public void EnterQuantity() 
            wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.ScrollView[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[3]/android.widget.LinearLayout[3]/android.widget.LinearLayout[1]/android.widget.EditText[1]")).sendKeys("1"); 
               

我在数量字段中得到 11 而不是 1。 我怎样才能降低写的速度,以确保只写我给的数字不加倍。

【问题讨论】:

请在 appium 尝试执行 sendkeys 时发布您的日志.. 我把这个问题作为答案,但问题是日志中的数量是 11 作为值而不是 1。 尝试在输入文本之前放置一些等待命令,并清除文本框中的文本。 【参考方案1】:

尝试在 Android 设备中手动更改语言和输入设置中的自动更正设置

【讨论】:

不,问题不是来自那里,因为自动更正已关闭【参考方案2】:

@Emna 我相信它会调用EnterQuantity() 两次。尝试在此函数中添加点击元素(例如提交按钮)以缩小根本原因

【讨论】:

我不这么认为,因为当我输入一个像 2780 一样的大数字时,它会被写成 227800 或 27800 或其他超过 4 位的组合。但我从来没有 27802780 @Emna 明白了。但是你可以在给出发送键后尝试点击或功能内的任何按钮吗? 这已经是我正在做的例子,我输入价格和数量然后点击购买订单,然后我转到订单列表,我看到这个订单的价格和数量具有附加效果11 代替 1 和 27800 代替 2780 或任何其他组合。这种情况并非一直在发生。但是假设 80% 那么最好将长 xpath 声明为一个元素并单击该元素而不是同时查找和发送密钥 //code WebElement xyz=wd.findElement(By.xpath("// android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.ScrollView [1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[3]/android.widget.LinearLayout[3]/android.widget.LinearLayout[1]/android.widget.EditText[1]") ); xyz.sendKeys("1"); 请。在查找长层次结构和同时发送输入之间可能存在日志@Emna

以上是关于在 Appium Sendkeys 中没有按预期工作,它发送的比我给它的多的主要内容,如果未能解决你的问题,请参考以下文章

Sendkeys 在使用 Appium 的 Winappdriver 中不起作用

使用Appium做手机自动化录制问题

@BeforeAll 在 JUnit5 中没有按预期运行

Appium selenium 字段中的明文

如何通过Appium / WebdriverIO更改iOS滑块值

Specflow 场景大纲未按预期工作