7.7 KiB
class DriverElement()
driver 模式的元素对象,包装了一个 WebElement 对象,并封装了常用功能。
参数说明:
- ele: WebElement - WebElement 对象
- page: DriverPage - 元素所在的页面对象
inner_ele
被包装的 WebElement 对象。
返回: WebElement
html
返回元素 outerHTML 文本。
返回: str
json
当返回内容是json格式时,返回对应的字典。
返回: dict
inner_html
返回元素 innerHTML 文本。
返回: str
tag
返回元素标签名。
返回: str
attrs
以字典方式返回元素所有属性及值。
返回: dict
text
返回元素内的文本,已格式化处理。
返回: str
raw_text
返回元素内的文本,未格式化处理。
返回: str
comments
返回元素内注释列表。
返回: list
link
返回元素 href 或 src 绝对 url。
返回: str
css_path
返回元素 css selector 绝对路径。
返回: str
xpath
返回元素 xpath 绝对路径。
返回: str
parent
返回父级元素对象。
返回: DriverElement
next
返回下一个兄弟元素对象。
返回: DriverElement
prev
返回上一个兄弟元素对象。
返回: DriverElement
size
以字典方式返回元素大小。
返回: dict
location
以字典方式放回元素坐标。
返回: dict
shadow_root
返回当前元素的 shadow_root 元素对象
返回: ShadowRoot
before
返回当前元素的 ::before 伪元素内容
返回: str
after
返回当前元素的 ::after 伪元素内容
返回: str
select
如果是 select 元素,返回 Select 对象,否则返回 None。
返回:Union[Select, None]
wait__ele
等待子元素从dom删除、显示、隐藏。
参数说明:
-
loc_or_ele:Union[str, tuple, DrissionElement, WebElement] - 可以是元素、查询字符串、loc元组
-
mode:str - 等待方式,可选:'del', 'display', 'hidden'
-
timeout:float - 等待超时时间
返回: 等待是否成功
texts()
返回元素内所有直接子节点的文本,包括元素和文本节点
参数说明:
- text_node_only:bool - 是否只返回文本节点
返回: List[str]
parents()
返回第 N 层父级元素对象。
参数说明:
- num: int - 第几层父元素
返回: DriverElement
nexts()
返回后面第 num 个兄弟元素或节点文本。
参数说明:
- num: int - 后面第几个兄弟元素或节点
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
返回: [DriverElement, str]
prevs()
返回前面第 num 个兄弟元素或节点文本。
参数说明:
- num: int - 前面第几个兄弟元素或节点
- mode: str - 'ele', 'node' 或 'text',匹配元素、节点、或文本节点
返回: [DriverElement, str]
attr()
获取元素某个属性的值。
参数说明:
- attr: str - 属性名称
返回: str
prop()
获取元素某个property属性的值。
参数说明:
- prop: str - 属性名称
返回: str
ele()
返回当前元素下级符合条件的子元素、属性或节点文本。
如查询参数是字符串,可选 '@属性名:'、'tag:'、'text:'、'css:'、'xpath:'、'.'、'#' 方式。无控制方式时默认用 text 方式查找。
如是loc,直接按照内容查询。
参数说明:
- loc_or_str: [Tuple[str, str], str] - 元素的定位信息,可以是 loc 元组,或查询字符串
- mode: str - 'single' 或 'all',对应查找一个或全部
- timeout: float - 查找元素超时时间
返回: [DriverElement, str]
eles()
根据查询参数获取符合条件的元素列表。查询参数使用方法和 ele 方法一致。
参数说明:
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
- timeout: float - 查找元素超时时间
返回: List[DriverElement or str]
s_ele()
查找第一个符合条件的元素以SessionElement形式返回。
参数说明:
- loc_or_str: [Tuple[str, str], str] - 元素的定位信息,可以是 loc 元组,或查询字符串
返回: [SessionElement, str]
s_eles()
查找所有符合条件的元素以SessionElement列表形式返回。
参数说明:
- loc_or_str: [Tuple[str, str], str] - 查询条件参数
返回: List[SessionElement or str]
style()
返回元素样式属性值。
参数说明:
- style: str - 样式属性名称
- pseudo_ele: str - 伪元素名称
返回: str
click()
点击元素,如不成功则用 js 方式点击,可指定是否用 js 方式点击。
参数说明:
- by_js: bool - 是否用js方式点击
返回: bool
click_at()
带偏移量点击本元素,相对于左上角坐标。不传入x或y值时点击元素中点。
参数说明:
- x: Union[int, str] - 相对元素左上角坐标的x轴偏移量
- y: Union[int, str] - 相对元素左上角坐标的y轴偏移量
- by_js: bool - 是否用js方式点击
返回: None
r_click()
右键单击。
返回: None
r_click_at()
带偏移量右键单击本元素,相对于左上角坐标。不传入x或y值时点击元素中点。
参数说明:
- x: Union[int, str] - 相对元素左上角坐标的x轴偏移量
- y: Union[int, str] - 相对元素左上角坐标的y轴偏移量
返回: None
input()
输入文本或组合键,返回是否成功输入。insure_input 为 False 时始终返回 True。
参数说明:
- vals: Union[str, tuple] - 文本值或按键组合
- clear: bool - 输入前是否清除文本框
- insure_input: bool - 是否自动检测并确保输入正确
- timeout: folat - 尝试输入的超时时间,不指定则使用父页面的超时时间,只在insure_input为True时生效
返回: bool,是否成功输入。insure_input 为 False 时始终返回 True。
run_script()
执行 js 代码,传入自己为第一个参数。
参数说明:
- script: str - JavaScript文本
- *args - 传入的参数
返回: Any
submit()
提交表单。
返回: None
clear()
清空文本框。
参数说明:
- insure_clear: bool - 是否确保清空
返回: bool - 是否清空成功,不能清空的元素返回None
is_selected()
元素是否被选中。
返回: bool
is_enabled()
元素在页面中是否可用。
返回: bool
is_displayed()
元素是否可见。
返回: bool
is_valid()
元素是否还在 DOM 内。该方法用于判断页面跳转元素不能用的情况
返回: bool
screenshot()
网页截图,返回截图文件路径。
参数说明:
- path: str - 截图保存路径,默认为 ini 文件中指定的临时文件夹
- filename: str - 截图文件名,默认为页面 title 为文件名
返回: str
select()
在下拉列表中选择。
参数说明:
- text: str - 选项文本
返回: bool - 是否成功
set_prop()
设置元素property属性。
参数说明:
- prop: str - 属性名
- value: str - 属性值
返回: bool -是否成功
set_attr()
设置元素attribute参数。
参数说明:
- attr: str - 参数名
- value: str - 参数值
返回: bool -是否成功
remove_attr()
删除元素属性。
参数说明:
- attr: str - 参数名
返回: bool -是否成功
drag()
拖拽当前元素一段距离,返回是否拖拽成功。
参数说明:
- x: int - 拖拽x方向距离
- y: int - 拖拽y方向距离
- speed: int - 拖拽速度
- shake: bool - 是否随机抖动
返回: bool
drag_to()
拖拽当前元素,目标为另一个元素或坐标元组,返回是否拖拽成功。
参数说明:
- ele_or_loc[tuple, WebElement, DrissionElement] - 另一个元素或相对当前位置,坐标为元素中点坐标。
- speed: int - 拖拽速度
- shake: bool - 是否随机抖动
返回: bool
hover()
在元素上悬停鼠标。
返回: None