Java Appium:无法在android中选择datepicker中的按钮

Java Appium:无法在android中选择datepicker中的按钮,java,android,automated-tests,appium,Java,Android,Automated Tests,Appium,我正在android手机应用程序上使用appium进行测试。我的android版本是5.1 日期选择器有一个SET按钮,用于用xpath确认日期设置:-//android.widget.FrameLayout[@index='0']/android.widget.button[@index='6']. 在测试结束时,我总是得到NoTouchElementException 除了错误的xpath之外,有人能解释可能的原因吗 代码如下: WebElement yearPicker = dr

我正在android手机应用程序上使用appium进行测试。我的android版本是5.1

日期选择器有一个SET按钮,用于用xpath确认日期设置:-
//android.widget.FrameLayout[@index='0']/android.widget.button[@index='6'].

在测试结束时,我总是得到
NoTouchElementException

除了错误的xpath之外,有人能解释可能的原因吗

代码如下:

     WebElement yearPicker = driver.findElementByXPath(yearView);
     yearPicker.click();
     // ... I omit the touch actions here
     WebElement set = driver.findElementByXPath("//android.widget.Button[@index='6']");
     set.click();
以下是datepicker的外观和xml结构:


可能是元素的位置在它出现之前就完成了,我建议您使用

Thread.sleep(5000)


开始操作之前。

可能是元素的位置在它出现之前就完成了,我建议您使用

Thread.sleep(5000)


开始操作之前。

请尝试this://android.widget.FrameLayout/android.widget.Button[包含(@resource id,“button1”)和包含(@text,“Set”)]

其次,每个设备的日期选择器都不同。
第三,给索引最后一个优先级。

试试看this://android.widget.FrameLayout/android.widget.Button[包含(@resource id,“button1”)和包含(@text,“Set”)]

其次,每个设备的日期选择器都不同。
第三,给索引最后一个优先级。

您可以使用资源id“button1”,例如driver.findElementById(“button1”)

您可以使用资源id“button1”,例如driver.findElementById(“button1”)

因为不同设备的日期选择器UI不同最好在选择日期后按enter键。如果第一种方法对你有效,我建议你使用它。即使用户界面发生变化,如果您按ENTER键而不是Set/Done/OK等,它也会工作

您可以通过两种方式完成:

  • 按回车键

    driver.longPressKeyCode(66);
    
  • 通过查找元素:

      Thread.sleep(2000);
    
    WebElement setButton=driver.findelementbypath(“//android.widget.Button[@text='Set']”);
    setButton.click();
    


  • 因为日期选择器用户界面因设备而异最好在选择日期后按enter键。如果第一种方法对你有效,我建议你使用它。即使用户界面发生变化,如果您按ENTER键而不是Set/Done/OK等,它也会工作

    您可以通过两种方式完成:

  • 按回车键

    driver.longPressKeyCode(66);
    
  • 通过查找元素:

      Thread.sleep(2000);
    
    WebElement setButton=driver.findelementbypath(“//android.widget.Button[@text='Set']”);
    setButton.click();
    


  • 您可以添加屏幕截图和代码片段吗?我已经发布了一个答案,希望对您有所帮助:)您可以添加屏幕截图和代码片段吗?我已经发布了一个答案,希望对您有所帮助:)我想我的版本中不推荐使用pressKeyCode和longPressKeyCode功能。目前,我正在使用java client 5.0.0 Beta3,我认为在我的版本中不推荐使用pressKeyCode和longPressKeyCode函数。目前,我正在使用java client 5.0.0 beta3