Ruby Selenium无法从Android图库中选择图像

时间:2014-05-28 10:47:39

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

我正在尝试从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无法在Gallery中选择缩略图,我尝试使用相对坐标来选择图像,但这是错误的。

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

2 个答案:

答案 0 :(得分: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}">

答案 1 :(得分:0)

你应该可以使用Appium找到它:

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

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