From cad7d62eb046572f588b66c6f37835d769bafb98 Mon Sep 17 00:00:00 2001 From: g1879 Date: Fri, 13 Nov 2020 00:09:38 +0800 Subject: [PATCH] =?UTF-8?q?ShadowElement=E5=A2=9E=E5=8A=A0=5F=5Fcall=5F=5F?= =?UTF-8?q?()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/shadow_root_element.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/DrissionPage/shadow_root_element.py b/DrissionPage/shadow_root_element.py index b854529..e9cf7a6 100644 --- a/DrissionPage/shadow_root_element.py +++ b/DrissionPage/shadow_root_element.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding:utf-8 -*- from re import split as re_SPLIT -from typing import Union, Any +from typing import Union, Any, Tuple from selenium.webdriver.remote.webelement import WebElement @@ -19,6 +19,19 @@ class ShadowRootElement(DrissionElement): def __repr__(self): return f'' + def __call__(self, + loc_or_str: Union[Tuple[str, str], str], + mode: str = 'single', + timeout: float = None): + """实现查找元素的简化写法 \n + 例:ele2 = ele1('@id=ele_id') \n + :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 + :param mode: 'single' 或 'all',对应查找一个或全部 + :param timeout: 超时时间 + :return: DriverElement对象 + """ + return self.ele(loc_or_str, mode, timeout or self.timeout) + @property def driver(self): """返回控制元素的WebDriver对象""" @@ -58,7 +71,7 @@ class ShadowRootElement(DrissionElement): return self.parent_ele.ele(loc, timeout=0.1) def ele(self, - loc_or_str: Union[tuple, str], + loc_or_str: Union[Tuple[str, str], str], mode: str = 'single', timeout: float = None): """返回当前元素下级符合条件的子元素,默认返回第一个 \n @@ -101,7 +114,7 @@ class ShadowRootElement(DrissionElement): return self._find_eles_by_text(loc_or_str[1], loc_or_str[2], loc_or_str[3], mode) def eles(self, - loc_or_str: Union[tuple, str], + loc_or_str: Union[Tuple[str, str], str], timeout: float = None): """返回当前元素下级所有符合条件的子元素 \n 示例: \n