diff --git a/DrissionPage/driver_element.py b/DrissionPage/driver_element.py index be5e2a2..1f8f712 100644 --- a/DrissionPage/driver_element.py +++ b/DrissionPage/driver_element.py @@ -210,31 +210,32 @@ class DriverElement(DrissionElement): - 用loc元组查找: \n ele.ele((By.CLASS_NAME, 'ele_class')) - 返回第一个class为ele_class的子元素 \n - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n ele.ele('.ele_class') - 返回第一个 class 为 ele_class 的子元素 \n ele.ele('.:ele_class') - 返回第一个 class 中含有 ele_class 的子元素 \n - ele.ele('#ele_id') - 返回第一个 id 为 ele_id 的子元素 \n + ele.ele('#ele_id') - 返回第一个 id 为 ele_id 的子元素 \n ele.ele('#:ele_id') - 返回第一个 id 中含有 ele_id 的子元素 \n - ele.ele('@class:ele_class') - 返回第一个class含有ele_class的子元素 \n - ele.ele('@name=ele_name') - 返回第一个name等于ele_name的子元素 \n - ele.ele('@placeholder') - 返回第一个带placeholder属性的子元素 \n - ele.ele('tag:p') - 返回第一个

子元素 \n - ele.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div子元素 \n - ele.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div子元素 \n - ele.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div子元素 \n - ele.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div子元素 \n - ele.ele('text:some_text') - 返回第一个文本含有some_text的子元素 \n - ele.ele('some_text') - 返回第一个文本含有some_text的子元素(等价于上一行) \n - ele.ele('text=some_text') - 返回第一个文本等于some_text的子元素 \n - ele.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的子元素 \n - ele.ele('css:div.ele_class') - 返回第一个符合css selector的子元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.ele('xpath://div[@class="ele_class"]') - 等同于 ele.ele('x://div[@class="ele_class"]') \n - ele.ele('css:div.ele_class') - 等同于 ele.ele('c:div.ele_class') \n - ele.ele('tag:div') - 等同于 ele.ele('t:div') \n - ele.ele('text:some_text') - 等同于 ele.ele('tx:some_text') \n - ele.ele('text=some_text') - 等同于 ele.ele('tx=some_text') + ele.ele('@class:ele_class') - 返回第一个class含有ele_class的子元素 \n + ele.ele('@name=ele_name') - 返回第一个name等于ele_name的子元素 \n + ele.ele('@placeholder') - 返回第一个带placeholder属性的子元素 \n + ele.ele('tag:p') - 返回第一个

子元素 \n + ele.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div子元素 \n + ele.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div子元素 \n + ele.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div子元素 \n + ele.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div子元素 \n + ele.ele('text:some_text') - 返回第一个文本含有some_text的子元素 \n + ele.ele('some_text') - 返回第一个文本含有some_text的子元素(等价于上一行) \n + ele.ele('text=some_text') - 返回第一个文本等于some_text的子元素 \n + ele.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的子元素 \n + ele.ele('css:div.ele_class') - 返回第一个符合css selector的子元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + ele.ele('x://div[@class="ele_class"]') - 等同于 ele.ele('xpath://div[@class="ele_class"]') \n + ele.ele('c:div.ele_class') - 等同于 ele.ele('css:div.ele_class') \n + ele.ele('t:div') - 等同于 ele.ele('tag:div') \n + ele.ele('t:div@tx()=some_text') - 等同于 ele.ele('tag:div@text()=some_text') \n + ele.ele('tx:some_text') - 等同于 ele.ele('text:some_text') \n + ele.ele('tx=some_text') - 等同于 ele.ele('text=some_text') :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 :param mode: 'single' 或 'all',对应查找一个或全部 :param timeout: 查找元素超时时间 @@ -267,36 +268,37 @@ class DriverElement(DrissionElement): def eles(self, loc_or_str: Union[Tuple[str, str], str], timeout: float = None): - """返回当前元素下级所有符合条件的子元素、属性或节点文本 \n - 示例: \n - - 用loc元组查找: \n - ele.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的子元素 \n - - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n - ele.eles('.ele_class') - 返回所有 class 为 ele_class 的子元素 \n - ele.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的子元素 \n - ele.eles('#ele_id') - 返回所有 id 为 ele_id 的子元素 \n - ele.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的子元素 \n - ele.eles('@class:ele_class') - 返回所有class含有ele_class的子元素 \n - ele.eles('@name=ele_name') - 返回所有name等于ele_name的子元素 \n - ele.eles('@placeholder') - 返回所有带placeholder属性的子元素 \n - ele.eles('tag:p') - 返回所有

子元素 \n - ele.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div子元素 \n - ele.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div子元素 \n - ele.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div子元素 \n - ele.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div子元素 \n - ele.eles('text:some_text') - 返回所有文本含有some_text的子元素 \n - ele.eles('some_text') - 返回所有文本含有some_text的子元素(等价于上一行) \n - ele.eles('text=some_text') - 返回所有文本等于some_text的子元素 \n - ele.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的子元素 \n - ele.eles('css:div.ele_class') - 返回所有符合css selector的子元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.eles('xpath://div[@class="ele_class"]') - 等同于 ele.eles('x://div[@class="ele_class"]') \n - ele.eles('css:div.ele_class') - 等同于 ele.eles('c:div.ele_class') \n - ele.eles('tag:div') - 等同于 ele.eles('t:div') \n - ele.eles('text:some_text') - 等同于 ele.eles('tx:some_text') \n - ele.eles('text=some_text') - 等同于 ele.eles('tx=some_text') + """返回当前元素下级所有符合条件的子元素、属性或节点文本 \n + 示例: \n + - 用loc元组查找: \n + ele.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的子元素 \n + - 用查询字符串查找: \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + ele.eles('.ele_class') - 返回所有 class 为 ele_class 的子元素 \n + ele.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的子元素 \n + ele.eles('#ele_id') - 返回所有 id 为 ele_id 的子元素 \n + ele.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的子元素 \n + ele.eles('@class:ele_class') - 返回所有class含有ele_class的子元素 \n + ele.eles('@name=ele_name') - 返回所有name等于ele_name的子元素 \n + ele.eles('@placeholder') - 返回所有带placeholder属性的子元素 \n + ele.eles('tag:p') - 返回所有

子元素 \n + ele.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div子元素 \n + ele.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div子元素 \n + ele.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div子元素 \n + ele.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div子元素 \n + ele.eles('text:some_text') - 返回所有文本含有some_text的子元素 \n + ele.eles('some_text') - 返回所有文本含有some_text的子元素(等价于上一行) \n + ele.eles('text=some_text') - 返回所有文本等于some_text的子元素 \n + ele.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的子元素 \n + ele.eles('css:div.ele_class') - 返回所有符合css selector的子元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + ele.eles('x://div[@class="ele_class"]') - 等同于 ele.eles('xpath://div[@class="ele_class"]') \n + ele.eles('c:div.ele_class') - 等同于 ele.eles('css:div.ele_class') \n + ele.eles('t:div') - 等同于 ele.eles('tag:div') \n + ele.eles('t:div@tx()=some_text') - 等同于 ele.eles('tag:div@text()=some_text') \n + ele.eles('tx:some_text') - 等同于 ele.eles('text:some_text') \n + ele.eles('tx=some_text') - 等同于 ele.eles('text=some_text') :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 :param timeout: 查找元素超时时间 :return: DriverElement对象组成的列表 diff --git a/DrissionPage/mix_page.py b/DrissionPage/mix_page.py index 488f386..1d653f4 100644 --- a/DrissionPage/mix_page.py +++ b/DrissionPage/mix_page.py @@ -345,38 +345,39 @@ class MixPage(Null, SessionPage, DriverPage): mode: str = None, timeout: float = None) \ -> Union[DriverElement, SessionElement, str, List[SessionElement], List[DriverElement]]: - """返回页面中符合条件的元素、属性或节点文本,默认返回第一个 \n - 示例: \n - - 接收到元素对象时: \n - 返回元素对象对象 \n - - 用loc元组查找: \n - ele.ele((By.CLASS_NAME, 'ele_class')) - 返回第一个class为ele_class的子元素 \n - - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n - page.ele('.ele_class') - 返回第一个 class 为 ele_class 的元素 \n - page.ele('.:ele_class') - 返回第一个 class 中含有 ele_class 的元素 \n - page.ele('#ele_id') - 返回第一个 id 为 ele_id 的元素 \n - page.ele('#:ele_id') - 返回第一个 id 中含有 ele_id 的元素 \n - page.ele('@class:ele_class') - 返回第一个class含有ele_class的元素 \n - page.ele('@name=ele_name') - 返回第一个name等于ele_name的元素 \n - page.ele('@placeholder') - 返回第一个带placeholder属性的元素 \n - page.ele('tag:p') - 返回第一个

元素 \n - page.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div元素 \n - page.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div元素 \n - page.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div元素 \n - page.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div元素 \n - page.ele('text:some_text') - 返回第一个文本含有some_text的元素 \n - page.ele('some_text') - 返回第一个文本含有some_text的元素(等价于上一行) \n - page.ele('text=some_text') - 返回第一个文本等于some_text的元素 \n - page.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的元素 \n - page.ele('css:div.ele_class') - 返回第一个符合css selector的元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.ele('xpath://div[@class="ele_class"]') - 等同于 ele.ele('x://div[@class="ele_class"]') \n - ele.ele('css:div.ele_class') - 等同于 ele.ele('c:div.ele_class') \n - ele.ele('tag:div') - 等同于 ele.ele('t:div') \n - ele.ele('text:some_text') - 等同于 ele.ele('tx:some_text') \n - ele.ele('text=some_text') - 等同于 ele.ele('tx=some_text') + """返回页面中符合条件的元素、属性或节点文本,默认返回第一个 \n + 示例: \n + - 接收到元素对象时: \n + 返回元素对象对象 \n + - 用loc元组查找: \n + ele.ele((By.CLASS_NAME, 'ele_class')) - 返回第一个class为ele_class的子元素 \n + - 用查询字符串查找: \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + page.ele('.ele_class') - 返回第一个 class 为 ele_class 的元素 \n + page.ele('.:ele_class') - 返回第一个 class 中含有 ele_class 的元素 \n + page.ele('#ele_id') - 返回第一个 id 为 ele_id 的元素 \n + page.ele('#:ele_id') - 返回第一个 id 中含有 ele_id 的元素 \n + page.ele('@class:ele_class') - 返回第一个class含有ele_class的元素 \n + page.ele('@name=ele_name') - 返回第一个name等于ele_name的元素 \n + page.ele('@placeholder') - 返回第一个带placeholder属性的元素 \n + page.ele('tag:p') - 返回第一个

元素 \n + page.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div元素 \n + page.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div元素 \n + page.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div元素 \n + page.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div元素 \n + page.ele('text:some_text') - 返回第一个文本含有some_text的元素 \n + page.ele('some_text') - 返回第一个文本含有some_text的元素(等价于上一行) \n + page.ele('text=some_text') - 返回第一个文本等于some_text的元素 \n + page.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的元素 \n + page.ele('css:div.ele_class') - 返回第一个符合css selector的元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + page.ele('x://div[@class="ele_class"]') - 等同于 page.ele('xpath://div[@class="ele_class"]') \n + page.ele('c:div.ele_class') - 等同于 page.ele('css:div.ele_class') \n + page.ele('t:div') - 等同于 page.ele('tag:div') \n + page.ele('t:div@tx()=some_text') - 等同于 page.ele('tag:div@text()=some_text') \n + page.ele('tx:some_text') - 等同于 page.ele('text:some_text') \n + page.ele('tx=some_text') - 等同于 page.ele('text=some_text') :param loc_or_ele: 元素的定位信息,可以是元素对象,loc元组,或查询字符串 :param mode: 'single' 或 'all‘,对应查找一个或全部 :param timeout: 查找元素超时时间,d模式专用 @@ -390,36 +391,37 @@ class MixPage(Null, SessionPage, DriverPage): def eles(self, loc_or_str: Union[Tuple[str, str], str], timeout: float = None) -> Union[List[DriverElement], List[SessionElement]]: - """返回页面中所有符合条件的元素、属性或节点文本 \n - 示例: \n - - 用loc元组查找: \n - page.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的元素 \n - - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n - page.eles('.ele_class') - 返回所有 class 为 ele_class 的元素 \n - page.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的元素 \n - page.eles('#ele_id') - 返回所有 id 为 ele_id 的元素 \n - page.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的元素 \n - page.eles('@class:ele_class') - 返回所有class含有ele_class的元素 \n - page.eles('@name=ele_name') - 返回所有name等于ele_name的元素 \n - page.eles('@placeholder') - 返回所有带placeholder属性的元素 \n - page.eles('tag:p') - 返回所有

元素 \n - page.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div元素 \n - page.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div元素 \n - page.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div元素 \n - page.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div元素 \n - page.eles('text:some_text') - 返回所有文本含有some_text的元素 \n - page.eles('some_text') - 返回所有文本含有some_text的元素(等价于上一行) \n - page.eles('text=some_text') - 返回所有文本等于some_text的元素 \n - page.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的元素 \n - page.eles('css:div.ele_class') - 返回所有符合css selector的元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.eles('xpath://div[@class="ele_class"]') - 等同于 ele.eles('x://div[@class="ele_class"]') \n - ele.eles('css:div.ele_class') - 等同于 ele.eles('c:div.ele_class') \n - ele.eles('tag:div') - 等同于 ele.eles('t:div') \n - ele.eles('text:some_text') - 等同于 ele.eles('tx:some_text') \n - ele.eles('text=some_text') - 等同于 ele.eles('tx=some_text') + """返回页面中所有符合条件的元素、属性或节点文本 \n + 示例: \n + - 用loc元组查找: \n + page.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的元素 \n + - 用查询字符串查找: \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + page.eles('.ele_class') - 返回所有 class 为 ele_class 的元素 \n + page.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的元素 \n + page.eles('#ele_id') - 返回所有 id 为 ele_id 的元素 \n + page.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的元素 \n + page.eles('@class:ele_class') - 返回所有class含有ele_class的元素 \n + page.eles('@name=ele_name') - 返回所有name等于ele_name的元素 \n + page.eles('@placeholder') - 返回所有带placeholder属性的元素 \n + page.eles('tag:p') - 返回所有

元素 \n + page.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div元素 \n + page.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div元素 \n + page.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div元素 \n + page.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div元素 \n + page.eles('text:some_text') - 返回所有文本含有some_text的元素 \n + page.eles('some_text') - 返回所有文本含有some_text的元素(等价于上一行) \n + page.eles('text=some_text') - 返回所有文本等于some_text的元素 \n + page.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的元素 \n + page.eles('css:div.ele_class') - 返回所有符合css selector的元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + page.eles('x://div[@class="ele_class"]') - 等同于 page.eles('xpath://div[@class="ele_class"]') \n + page.eles('c:div.ele_class') - 等同于 page.eles('css:div.ele_class') \n + page.eles('t:div') - 等同于 page.eles('tag:div') \n + page.eles('t:div@tx()=some_text') - 等同于 page.eles('tag:div@text()=some_text') \n + page.eles('tx:some_text') - 等同于 page.eles('text:some_text') \n + page.eles('tx=some_text') - 等同于 page.eles('text=some_text') :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 :param timeout: 查找元素超时时间,d模式专用 :return: 元素对象或属性、文本节点文本组成的列表 diff --git a/DrissionPage/session_element.py b/DrissionPage/session_element.py index beb6019..0bcf345 100644 --- a/DrissionPage/session_element.py +++ b/DrissionPage/session_element.py @@ -201,35 +201,36 @@ class SessionElement(DrissionElement): def ele(self, loc_or_str: Union[Tuple[str, str], str], mode: str = None): """返回当前元素下级符合条件的子元素、属性或节点文本,默认返回第一个 \n - 示例: \n + 示例: \n - 用loc元组查找: \n ele.ele((By.CLASS_NAME, 'ele_class')) - 返回第一个class为ele_class的子元素 \n - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n ele.ele('.ele_class') - 返回第一个 class 为 ele_class 的子元素 \n ele.ele('.:ele_class') - 返回第一个 class 中含有 ele_class 的子元素 \n - ele.ele('#ele_id') - 返回第一个 id 为 ele_id 的子元素 \n + ele.ele('#ele_id') - 返回第一个 id 为 ele_id 的子元素 \n ele.ele('#:ele_id') - 返回第一个 id 中含有 ele_id 的子元素 \n - ele.ele('@class:ele_class') - 返回第一个class含有ele_class的子元素 \n - ele.ele('@name=ele_name') - 返回第一个name等于ele_name的子元素 \n - ele.ele('@placeholder') - 返回第一个带placeholder属性的子元素 \n - ele.ele('tag:p') - 返回第一个

子元素 \n - ele.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div子元素 \n - ele.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div子元素 \n - ele.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div子元素 \n - ele.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div子元素 \n - ele.ele('text:some_text') - 返回第一个文本含有some_text的子元素 \n - ele.ele('some_text') - 返回第一个文本含有some_text的子元素(等价于上一行) \n - ele.ele('text=some_text') - 返回第一个文本等于some_text的子元素 \n - ele.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的子元素 \n - ele.ele('css:div.ele_class') - 返回第一个符合css selector的子元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.ele('xpath://div[@class="ele_class"]') - 等同于 ele.ele('x://div[@class="ele_class"]') \n - ele.ele('css:div.ele_class') - 等同于 ele.ele('c:div.ele_class') \n - ele.ele('tag:div') - 等同于 ele.ele('t:div') \n - ele.ele('text:some_text') - 等同于 ele.ele('tx:some_text') \n - ele.ele('text=some_text') - 等同于 ele.ele('tx=some_text') + ele.ele('@class:ele_class') - 返回第一个class含有ele_class的子元素 \n + ele.ele('@name=ele_name') - 返回第一个name等于ele_name的子元素 \n + ele.ele('@placeholder') - 返回第一个带placeholder属性的子元素 \n + ele.ele('tag:p') - 返回第一个

子元素 \n + ele.ele('tag:div@class:ele_class') - 返回第一个class含有ele_class的div子元素 \n + ele.ele('tag:div@class=ele_class') - 返回第一个class等于ele_class的div子元素 \n + ele.ele('tag:div@text():some_text') - 返回第一个文本含有some_text的div子元素 \n + ele.ele('tag:div@text()=some_text') - 返回第一个文本等于some_text的div子元素 \n + ele.ele('text:some_text') - 返回第一个文本含有some_text的子元素 \n + ele.ele('some_text') - 返回第一个文本含有some_text的子元素(等价于上一行) \n + ele.ele('text=some_text') - 返回第一个文本等于some_text的子元素 \n + ele.ele('xpath://div[@class="ele_class"]') - 返回第一个符合xpath的子元素 \n + ele.ele('css:div.ele_class') - 返回第一个符合css selector的子元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + ele.ele('x://div[@class="ele_class"]') - 等同于 ele.ele('xpath://div[@class="ele_class"]') \n + ele.ele('c:div.ele_class') - 等同于 ele.ele('css:div.ele_class') \n + ele.ele('t:div') - 等同于 ele.ele('tag:div') \n + ele.ele('t:div@tx()=some_text') - 等同于 ele.ele('tag:div@text()=some_text') \n + ele.ele('tx:some_text') - 等同于 ele.ele('text:some_text') \n + ele.ele('tx=some_text') - 等同于 ele.ele('text=some_text') :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 :param mode: 'single' 或 'all‘,对应查找一个或全部 :return: SessionElement对象 @@ -260,36 +261,37 @@ class SessionElement(DrissionElement): return execute_session_find(element, loc_or_str, mode) def eles(self, loc_or_str: Union[Tuple[str, str], str]): - """返回当前元素下级所有符合条件的子元素、属性或节点文本 \n - 示例: \n - - 用loc元组查找: \n - ele.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的子元素 \n - - 用查询字符串查找: \n - 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n - @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n - ele.eles('.ele_class') - 返回所有 class 为 ele_class 的子元素 \n - ele.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的子元素 \n - ele.eles('#ele_id') - 返回所有 id 为 ele_id 的子元素 \n - ele.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的子元素 \n - ele.eles('@class:ele_class') - 返回所有class含有ele_class的子元素 \n - ele.eles('@name=ele_name') - 返回所有name等于ele_name的子元素 \n - ele.eles('@placeholder') - 返回所有带placeholder属性的子元素 \n - ele.eles('tag:p') - 返回所有

子元素 \n - ele.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div子元素 \n - ele.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div子元素 \n - ele.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div子元素 \n - ele.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div子元素 \n - ele.eles('text:some_text') - 返回所有文本含有some_text的子元素 \n - ele.eles('some_text') - 返回所有文本含有some_text的子元素(等价于上一行) \n - ele.eles('text=some_text') - 返回所有文本等于some_text的子元素 \n - ele.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的子元素 \n - ele.eles('css:div.ele_class') - 返回所有符合css selector的子元素 \n - - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n - ele.eles('xpath://div[@class="ele_class"]') - 等同于 ele.eles('x://div[@class="ele_class"]') \n - ele.eles('css:div.ele_class') - 等同于 ele.eles('c:div.ele_class') \n - ele.eles('tag:div') - 等同于 ele.eles('t:div') \n - ele.eles('text:some_text') - 等同于 ele.eles('tx:some_text') \n - ele.eles('text=some_text') - 等同于 ele.eles('tx=some_text') + """返回当前元素下级所有符合条件的子元素、属性或节点文本 \n + 示例: \n + - 用loc元组查找: \n + ele.eles((By.CLASS_NAME, 'ele_class')) - 返回所有class为ele_class的子元素 \n + - 用查询字符串查找: \n + 查找方式:属性、tag name和属性、文本、xpath、css selector、id、class \n + @表示属性,.表示class,#表示id,=表示精确匹配,:表示模糊匹配,无控制字符串时默认搜索该字符串 \n + ele.eles('.ele_class') - 返回所有 class 为 ele_class 的子元素 \n + ele.eles('.:ele_class') - 返回所有 class 中含有 ele_class 的子元素 \n + ele.eles('#ele_id') - 返回所有 id 为 ele_id 的子元素 \n + ele.eles('#:ele_id') - 返回所有 id 中含有 ele_id 的子元素 \n + ele.eles('@class:ele_class') - 返回所有class含有ele_class的子元素 \n + ele.eles('@name=ele_name') - 返回所有name等于ele_name的子元素 \n + ele.eles('@placeholder') - 返回所有带placeholder属性的子元素 \n + ele.eles('tag:p') - 返回所有

子元素 \n + ele.eles('tag:div@class:ele_class') - 返回所有class含有ele_class的div子元素 \n + ele.eles('tag:div@class=ele_class') - 返回所有class等于ele_class的div子元素 \n + ele.eles('tag:div@text():some_text') - 返回所有文本含有some_text的div子元素 \n + ele.eles('tag:div@text()=some_text') - 返回所有文本等于some_text的div子元素 \n + ele.eles('text:some_text') - 返回所有文本含有some_text的子元素 \n + ele.eles('some_text') - 返回所有文本含有some_text的子元素(等价于上一行) \n + ele.eles('text=some_text') - 返回所有文本等于some_text的子元素 \n + ele.eles('xpath://div[@class="ele_class"]') - 返回所有符合xpath的子元素 \n + ele.eles('css:div.ele_class') - 返回所有符合css selector的子元素 \n + - 查询字符串还有最精简模式,用x代替xpath、c代替css、t代替tag、tx代替text: \n + ele.eles('x://div[@class="ele_class"]') - 等同于 ele.eles('xpath://div[@class="ele_class"]') \n + ele.eles('c:div.ele_class') - 等同于 ele.eles('css:div.ele_class') \n + ele.eles('t:div') - 等同于 ele.eles('tag:div') \n + ele.eles('t:div@tx()=some_text') - 等同于 ele.eles('tag:div@text()=some_text') \n + ele.eles('tx:some_text') - 等同于 ele.eles('text:some_text') \n + ele.eles('tx=some_text') - 等同于 ele.eles('text=some_text') :param loc_or_str: 元素的定位信息,可以是loc元组,或查询字符串 :return: SessionElement对象组成的列表 """