🔦 页面或元素内查找
✅️️ 页面或元素内查找
页面对象和元素对象都拥有ele()和eles()方法,用于获取其内部指定子元素。
📌 ele()
用于查找其内部第一个条件匹配的元素。
页面 对象和元素对象的ele()方法参数名称稍有不同,但用法一样。
SessionPage和ChromiumPage获取元素的方法是一致的,但前者返回的元素对象为SessionElement,后者是ChromiumElement。
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
locator(元素对象) | strTuple[str, str] | 必填 | 元素的定位信息。可以是查询字符串,或 loc 元组 |
locator(页面对象) | strSessionElementTuple[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 | strTuple[str, str] | 必填 | 元素的定位信息,可以是查询字符串,或 loc 元组 |
timeout | float | None | 等待元素出现的超时时间,为None使用页面对象设置,SessionPage中无效 |
| 返回类型 |
|---|