From f4bf994ecb55ee45c58949b47f02fa0024c7e97f Mon Sep 17 00:00:00 2001 From: g1879 Date: Mon, 8 Jun 2020 00:24:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=83=E7=B4=A0=E6=9F=A5=E6=89=BE=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=A2=9E=E5=8A=A0=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=E6=9F=A5=E6=89=BE=EF=BC=9B=E5=A2=9E=E5=8A=A0=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E6=9F=A5=E6=89=BEtag=20name=E5=92=8C=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=80=BC=E6=88=96=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/common.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/DrissionPage/common.py b/DrissionPage/common.py index 0631dd3..66012e0 100644 --- a/DrissionPage/common.py +++ b/DrissionPage/common.py @@ -73,7 +73,9 @@ def get_loc_from_str(loc: str) -> tuple: tag:div - div元素 tag:div@class:ele_class - class含有ele_class的div元素 tag:div@class=ele_class - class等于ele_class的div元素 - text:search_text - 文本包含search_text的元素 + tag:div@text():search_text - 文本含有search_text的div元素 + tag:div@text()=search_text - 文本等于search_text的div元素 + text:search_text - 文本含有search_text的元素 text=search_text - 文本等于search_text的元素 xpath://div[@class="ele_class"] css:div.ele_class @@ -94,7 +96,8 @@ def get_loc_from_str(loc: str) -> tuple: r = re.split(r'([:=])', at_lst[1], maxsplit=1) if len(r) == 3: mode = 'exact' if r[1] == '=' else 'fuzzy' - loc_str = _make_xpath_str(at_lst[0], f'@{r[0]}', r[2], mode) + arg_str = r[0] if r[0] == 'text()' else f'@{r[0]}' + loc_str = _make_xpath_str(at_lst[0], arg_str, r[2], mode) else: loc_str = f'//{at_lst[0]}[@{r[0]}]' elif loc.startswith(('text=', 'text:')):