Xcode UI测试:WebView内带Font Awesome的元素定位与调用问题
解决WebView中带Font Awesome图标的按钮定位问题
这种情况我之前也碰到过!第三方网页里的按钮混了Font Awesome的Unicode图标字符,确实会让常规的文本定位失效,甚至录制工具崩溃,给你几个实用的解决思路:
部分文本匹配法:不管前面的图标是什么,按钮核心文本是「Create Account」,直接用包含匹配来定位。比如在测试框架里用XPath的
contains方法://button[contains(text(), 'Create Account')]这个方法不关心文本前面的特殊字符,只要目标字符串存在就能命中按钮。
Unicode字符精准匹配:你打印出的
是Font Awesome向右箭头的Unicode表现,对应的编码是\uf105。可以把这个编码加到定位文本里,构造完整的匹配字符串://button[text()='\uf105 Create Account']注意不同语言里转义Unicode的方式可能略有差异,比如Swift里要写成
"\u{f105} Create Account"。优先用非文本属性定位:如果这个按钮有唯一的
id、class或者data-*这类自定义属性,直接用这些属性定位是最可靠的,完全避开文本里的图标问题。比如://button[@id='create-account-btn']或者用CSS选择器:
button.create-account-btn确认WebView上下文切换:别忘了先确保你的测试代码已经正确切换到WebView的上下文环境,很多时候找不到元素是因为还停留在原生App的上下文里。比如可以通过获取所有上下文列表,再切换到WebView对应的条目。
另外提醒一句,因为是第三方网页,文本内容可能会有变更,所以优先选择id、class这类相对稳定的属性来定位,能减少后续维护的麻烦。
内容的提问来源于stack exchange,提问作者standousset
相关产品推荐
相关产品推荐

