🔦 页面或元素内查找
✅️️ 页面或元素内查找
页面对象和元素对象都拥有ele()
和eles()
方法,用于获取其内部指定子元素。
📌 ele()
用于查找其内部第一个条件匹配的元素。
页面 对象和元素对象的ele()
方法参数名称稍有不同,但用法一样。
SessionPage
和ChromiumPage
获取元素的方法是一致的,但前者返回的元素对象为SessionElement
,后者是ChromiumElement
。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
locator (元素对象) | str Tuple[str, str] | 必填 | 元素的定位信息。可以是查询字符串,或 loc 元组 |
locator (页面对象) | str SessionElement Tuple[str, str] | 必填 | 元素的定位信息。可以是查询字符串、loc 元组或一个SessionElement 对象 |
index | int | 1 | 获取第几个匹配的元素,从1 开始,可输入负数表示从后面开始数 |
timeout | float | None | 等待元素出现的超时时间,为None 使用页面对象设置,SessionPage 中无效 |
返回类型 | 说明 |
---|---|
SessionElement | SessionPage 或SessionElement 查找到的第一个符合条件的元素对象 |
ChromiumElement | 浏览器页面对象或元素对象查找到的第一个符合条件的元素对象 |
ChromiumFrame | 当结果是框架元素时,会返回ChromiumFrame ,但 IDE 中不会包含该提示 |
NoneElement | 未找到符合条件的元素时返回 |
说明
- loc 元组是指 selenium 定位符,例:(By.ID, '****')。下同。
ele('****', index=2)
和eles('****')[1]
结果一样,不过前者会快很多。
示例:
from DrissionPage import SessionPage
page = SessionPage()
# 在页面内查找元素
ele1 = page.ele('#one')
# 在元素内查找后代元素
ele2 = ele1.ele('第二行')
📌 eles()
此方法与ele()
相似,但返回的是匹配到的所有元素组成的列表。
页面对象和元素对象都可调用这个方法。
eles()
返回的是普通列表,链式操作需加下标,如page.eles('...')[0].ele('...')
。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
locator | str Tuple[str, str] | 必填 | 元素的定位信息,可以是查询字符串,或 loc 元组 |
timeout | float | None | 等待元素出现的超时时间,为None 使用页面对象设置,SessionPage 中无效 |
返回类型 |
---|