如何单击android应用程序中的特定元素?
Posted
技术标签:
【中文标题】如何单击android应用程序中的特定元素?【英文标题】:How to click particular element in android app? 【发布时间】:2015-07-15 01:04:54 【问题描述】:我已经提供了有关定位器元素的完整详细信息,这些都是我从 android 应用的 appium 检查器获得的。
在我的测试用例中,我使用文本“CATEGORIES”作为名称并键入“android.widget.TextView”作为类名和 xpath="/android.widget.TextView[1]"。
李>这些是我尝试过的可能性。但是,点击操作不会发生在我身上。
如何使用定位器点击特定元素?
详情:
内容描述: 类型:android.widget.TextView 文本:类别 指数:0 启用:真 可见:假 位置:0, 77 大小:406, 42 可检查:假 检查:假 可聚焦:假 可长按:假 包:com.vivi.droid.qa 密码:假资源ID:空 可滚动:假 选择:假 路径: //android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.widget.SlidingPaneLayout[1]/android.widget.RelativeLayout[1] /android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/ android.widget.TextView[1]
【问题讨论】:
【参考方案1】:尝试使用路径点击元素:
示例代码
self.driver.find_element_by_xpath('//UIAApplication[1]/UIAWindow[2]/UIASecureTextField[1]').click()
我使用python,如果你使用任何其他语言代码可能会在语法上有所不同
【讨论】:
使用这个代码:driver.findElementsByxpath("/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.support.v4 .widget.SlidingPaneLayout[1]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]/android.support.v4.view.ViewPager[1]/android.widget.LinearLayout[1]/android. widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.TextView[1]").click() 你能分享检查员快照吗?【参考方案2】:您提到您已尝试但 click() 不起作用。我建议以下解决方案:
解决方案 1 -
您应该检查并确认该元素是否具有属性 clickable = TRUE [如果该元素是可点击的,那么去下一个解决方案]解决方案 2 -
driver.findElement(By.xpath("//android.widget.TextView[@text='CATEGORIES']")).click(); driver.findElement(By.xpath("//android.widget.TextView[contains(@text,'CATEGORIES'])")).click(); driver.findElement(By.xpath("//android.widget.TextView[contains(@text,'CATEGORIES'] and @index='1')")).click();【讨论】:
以上是关于如何单击android应用程序中的特定元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Android 中的 Fragment 访问 UI 元素?