Java Appium:无法在android中选择datepicker中的按钮
我正在android手机应用程序上使用appium进行测试。我的android版本是5.1Java 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
日期选择器有一个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