【问题标题】:Ruby Selenium unable to select image from android image galleryRuby Selenium 无法从 android 图片库中选择图片
【发布时间】:2014-07-17 13:18:23
【问题描述】:

我正在尝试从 Android 图像厨房网格视图中选择图像。此网格视图为每个图像提供ImageView。每个ImageView 都有id。

所以当我试图通过//ImageView[@id="someId"][1]//GridView[@id="someId"]//ImageView[@id="someId"][1] 获取时,它找不到它。

如何使用Selenium webdriver in ruby从图库中选择图片。

编辑:

<GridView id = "someId">
    <LinearView>
        <ImageView id = "someImageId"></ImageView>
    </LinearView>
    <LinearView>
        <ImageView id = "someImageId"></ImageView>
    </LinearView>
    <LinearView>
        <ImageView id = "someImageId"></ImageView>
    </LinearView>
    <LinearView>
        <ImageView id = "someImageId"></ImageView>
    </LinearView>
</GridView>

编辑 由于 Uiautomator 无法选择图库中的缩略图,因此我尝试使用相对坐标来选择图像,但这会出错。

有人做过吗?我需要从 android 图库中选择图片。

【问题讨论】:

  • driver.find_element(:id, "someId") 应该可以工作。
  • 是的,我也试过了,但没用。容器中还有多个 imageview,所以使用它我无法获得第一个 ImageView
  • 然后需要查看HTML..

标签: android ruby selenium-webdriver xpath-2.0 appium


【解决方案1】:

如果你想要第一张图片 (ImageView):

//*[@id='someId']/LinearView[1]/ImageView

输出:

<ImageView id="someImageId"/>

您可以更改LienarView 数组选择中的索引。

element = driver.find_element(:xpath, "//*[@id='someId']/LinearView[1]/ImageView")
p element
# <Selenium::WebDriver::Element:0x3eb6a9d8 id="{ea847fbe-7fc7-453b-97ea-74fbf325ddac}">

编辑: 您还可以使用find_elements() 将所有元素提取到一个数组中,然后选择您想要的:

elements = driver.find_elements(:xpath, '//ImageView')
p elements[1]
# <Selenium::WebDriver::Element:0x..f9bdc4412 id="{1f41fbd9-0a73-4fb2-9c98-44bb877e2388}">

【讨论】:

  • 谢谢,我之前都试过了。但无法从图库容器中获取图像。这可能是从 Appium 的图库容器中获取图像的问题。
  • 很奇怪,它正在使用您的 XML 文件 (webdriver) 在我的浏览器上运行。您在使用AndroidDriver 吗?
  • 嗯,这是Appium的问题,Appium不能选择Gallery中的缩略图。
【解决方案2】:

您应该能够使用 Appium 找到它:

//android.widget.ImageView[@id="someId"][1] 

//android.widget.GridView[@id="someId"]//android.widget.ImageView[@id="someId"][1]

【讨论】:

  • 这也不起作用。我用另一种方式解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2013-06-18
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多