DrissionPage/docs/使用方法/driver模式元素的对象.md
2021-12-21 21:52:19 +08:00

7.7 KiB
Raw Blame History

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

返回元素 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