openatx/uiautomator2

lxml.etree._tagValidOrRaise() 提示 Invalid tag name 导致无法获取界面内容

Open

#670 opened on Apr 8, 2021

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Python (1,353 forks)batch import
help wanted

Repository metrics

Stars
 (5,632 stars)
PR merge metrics
 (Avg merge 1d 21h) (5 merged PRs in 30d)

Description

版本信息

Name: uiautomator2 Version: 2.14.1

问题描述

d.xpath("//*[re:match(@text, '^.*')]").all()提取支付宝首页文本时, 出现异常报错

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-18-bbe349559290> in <module>
----> 1 d.xpath("//*[re:match(@text, '^.*')]").all()

c:\users\w\anaconda3\lib\site-packages\uiautomator2\xpath.py in all(self, source)
    473 
    474         for node in root.xpath("//node"):
--> 475             node.tag = safe_xmlstr(node.attrib.pop("class", "")) or "node"
    476 
    477         match_sets = []

src/lxml/etree.pyx in lxml.etree._Element.tag.__set__()

src/lxml/apihelpers.pxi in lxml.etree._tagValidOrRaise()

ValueError: Invalid tag name '  '

通过d.dump_hierarchy()获取xml, 发现确实有个class为" "的node项

<node index="0" text="" resource-id="" class="  " package="com.eg.android.AlipayGphone" content-desc="财富生活" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1556][1044,1676]">

用ATX WEditor找到对应项 image

Contributor guide