【问题标题】:Not able to click on the date picker button to change the date using appium and java无法单击日期选择器按钮以使用 appium 和 java 更改日期
【发布时间】:2016-11-04 11:00:40
【问题描述】:

无法单击日期选择器上的月、日、年、hh、mm 按钮来更改值。但是使用 getText 方法我可以读取按钮的名称。

列出所有按钮 = driver.findElements(By.className("android.widget.Button")); System.out.println("上一个日期是"+allButtons.get(0).getText()); allButtons.get(0).click();

Java 代码和 appium 没有显示任何错误,并且 testng 测试用例通过。 请帮忙 无法单击日期选择器按钮以使用 appium 和 java 更改日期

【问题讨论】:

  • 系统输出打印是什么?
  • @NicolePhillips。这一行 System.out.println("以前的日期是 "+allButtons.get(0).getText());打印“十二月”
  • 看看这个问题和答案:stackoverflow.com/questions/32518284/…
  • 你能发布你的 appium 完整日志吗?
  • @NicolePhillips 谢谢。使用点击方法解决了该问题。感谢您的帮助

标签: java selenium selenium-webdriver appium


【解决方案1】:

我建议您使用 Swipe 方法来帮助您滚动日历日期。

例如:

首先单击您的日历图标,然后使用以下代码:

Thread.sleep(3000);
 for(int x=0;x<9;x++)
    {
     // Swipe syntax sould be like this way depending on your needs, you have just need to change points
     //driver.swipe(startx, starty, endx, endy, duration);
        driver.swipe(450,550,350,500,0);  

    }

我使用的循环是从 3 月 1 日滚动到 3 月 10 日,例如,您可以根据需要进行更改。 告诉我这是否适合你。

【讨论】:

  • @Emma,我不想使用滑动方法,因为这可能会在不同的设备上失败
  • 但我认为它可以帮助你!你找到其他方法了吗?
  • 感谢您的帮助。使用点击方法解决了该问题
  • 太棒了!为你高兴:)
【解决方案2】:

您可以按照您尝试的方式单击并选择设备中的日期。您需要使用发送密钥。试试下面的代码:

driver.findElement(By.xpath("//UIAPickerWheel[1]")).sendKeys(Dec);
driver.findElement(By.xpath("//UIAPickerWheel[2]")).sendKeys(04);
driver.findElement(By.xpath("//UIAPickerWheel[3]")).sendKeys(2015);

【讨论】:

  • @KristapsMežavilks :这是一个示例,您需要根据您的应用程序更改 xpath,还要在 android 中选择 datepicker 轮。并且不要选择特定按钮,因为您无法在按钮中输入。
  • 根据我的经验,这不是通用的解决方案。我设法将它用于一个特定的 Android 版本,但之后更改了解决方案,因为它不适用于最新的设备。
  • @KristapsMežavilks :是的,这是特定于操作系统的,但在所有操作系统情况下,您都需要更改 XPath,因为新操作系统会改变应用程序的呈现方式。但是 .sendKeys 是所有操作系统的解决方案。在 6.0 之前,我已经为不同的 android OS 尝试过这个
  • @Keshav sendkey 不起作用。我试过了。这不是用户输入字段
  • 谢谢大家。使用点击方法解决了该问题。最初我使用了 AndroidDriver ,所以点击方法不可用。现在我将驱动程序更改为 AndroidDriver。这个链接很有帮助stackoverflow.com/questions/32518284/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 2016-11-26
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
相关资源
最近更新 更多