我正在尝试从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中选择图片。
答案 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]