From 7f6285f3cd238689f4045e3b57533cda786d7431 Mon Sep 17 00:00:00 2001 From: g1879 Date: Tue, 29 Dec 2020 23:07:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=AF=B9xpath=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E5=AD=97=E7=BB=93=E6=9E=9C=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DrissionPage/driver_element.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/DrissionPage/driver_element.py b/DrissionPage/driver_element.py index 68f5a9c..79c3e2b 100644 --- a/DrissionPage/driver_element.py +++ b/DrissionPage/driver_element.py @@ -627,7 +627,7 @@ class ElementsByXpath(object): """用js通过xpath获取元素、节点或属性 :param node: 'document' 或 元素对象 :param xpath_txt: xpath语句 - :param type_txt: resultType,参考https://developer.mozilla.org/zh-CN/docs/Web/API/Document/evaluate + :param type_txt: resultType,参考 https://developer.mozilla.org/zh-CN/docs/Web/API/Document/evaluate :return: 元素对象或属性、文本字符串 """ node_txt = 'document' if not node or node == 'document' else 'arguments[0]' @@ -685,8 +685,14 @@ class ElementsByXpath(object): return e # 找不到目标时 - except JavascriptException: - return None + except JavascriptException as err: + if 'The result is not a node set' in err.msg: + try: + return get_nodes(the_node, xpath_txt=self.xpath, type_txt='1') + except JavascriptException: + return None + else: + return None elif self.mode == 'all': return ([DriverElement(x, self.page) if isinstance(x, WebElement)