find_element()和find_elements()的区别

1.是什么
find_element()和find_elements()都是用以元素定位的方法
区别:
以当前页面存在多个相同元素resource-id为例,如图中存在5个相同的resource-id
find_element()和find_elements()的区别_第1张图片

find_element()为单数,即获取到符合条件的第一个resource-id即返回
find_elements()为复数,获取的是一个列表,返回的也是列表形式,如下:

[
-873a-40d8-92ce-d254e38bc28a", element="eafa2251-c9ca-4df6-bf0d-85e4ec01e633")>, 
-873a-40d8-92ce-d254e38bc28a", element="d2731cfb-6899-4a4a-945e-b5945e71abc7")>, 
-873a-40d8-92ce-d254e38bc28a", element="64f2c885-56c1-4391-89ce-e3dc6b58ab22")>, 
-873a-40d8-92ce-d254e38bc28a", element="88864701-5ce0-416e-b738-0c225478968d")>, 
-873a-40d8-92ce-d254e38bc28a", element="91efbc13-ed70-4a72-9637-d0cca02d1976")>
]

2.为什么
为什么要区分find_element()和find_elements(),
原因就在于在实际元素定位操作中这样的情况非常普遍,如果遇到该样元素相同的情况,仅依靠find_element()就行不通了,需要find_elements()来救场.
当然find_elements()也有其弊端,比如页面相同元素过多时,确定下标可能稍显繁琐,
此时可采用备用方案,如采用坐标定位来进行点击操作

3.怎么做

#正常示例:element单数时,自动返回符合条件的第一个元素
dri.find_element_by_id("com.chinaesport.bugegaming:id/image_view").click()
#错误示例:element复数时,在()后必须指定元素下标,否则报错
dri.find_elements_by_id("com.chinaesport.bugegaming:id/image_view").click()
dri.find_elements_by_id("com.chinaesport.bugegaming:id/image_view")[3].click()

你可能感兴趣的:(python)