在我正在测试的Android应用程序中,我正在尝试单击/轻敲时间选择器。例如,默认情况下,时间选择器显示08:00AM我想将小时从8更改为7&然后更改分钟,但是xpath似乎不起作用。它点击了一些东西,但当我通过代码点击OK按钮时,时间仍然显示为08:00AM。如果有人可以帮助我,那么我将能够改变分钟& PM的AM以及。
这是我用来点击小时选择器,这样7就会显示为选中状态:
driver.findElement(By.xpath("//android.widget.NumberPicker[0]/android.widget.Button[0]")).click();图片:

发布于 2015-09-12 16:27:24
以下是对我有效的解决方案:
使用MobileElement.的
我已经发布了下面的代码&它起作用了。它可能需要改进,但现在我很高兴,因为我不是一个铁杆程序员。
现在假设小时是可变的,这取决于您的测试
            // change hour
            @SuppressWarnings("unchecked")
            List<WebElement> buttons = driver.findElementsByClassName("android.widget.Button");
            MobileElement hour = (MobileElement) buttons.get(0);
            List<WebElement> highlights = driver.findElementsByClassName("android.widget.EditText");
            MobileElement hourHighlight = (MobileElement) highlights.get(0); // highlighted hour
            // lets say we need hour = 4
            while (!hourHighlight.getText().equalsIgnoreCase("4"))
            {
                Thread.sleep(100);
                if (hourHighlight.getText().equalsIgnoreCase("4"))
                {
                    break;
                }
                hour.tap(1, 10);
            }发布于 2015-09-11 16:10:53
我已经尝试通过文本查找一个元素,即'7‘,它对我有效,请尝试使用:
driver.findElementsByName("7").click();
or
helpers.element(By.name("7")).click();您还可以使用变量而不是文本来单击特定时间
如果有效,请让我知道
发布于 2015-09-11 21:49:04
试试这个:
driver.findElementByName("7").click();或
driver.findElementByXPath("//*[@class='android.widget.button' and @text='7']").click();https://stackoverflow.com/questions/32518284
复制相似问题