getText获取指定class的span元素返回空值的问题排查
问题原因定位
代码执行无输出、无法获取目标span文本的核心原因是CSS选择器语法编写错误,导致元素定位接口完全匹配不到目标节点,后续回调逻辑根本不会触发。
- 错误选择器的实际语义:你传入的
.spacer-right big project-card-measure-secondary-info,会被解析为查找「class为spacer-right的元素内部,标签名为big的后代元素内部,标签名为project-card-measure-secondary-info的后代元素」,和你要找的「同时携带三个class属性的单个span元素」完全不是同一个目标。 - 多类选择器的正确规则:当要匹配同时包含多个class名的元素时,多个类名之间不能加空格,每个类名前都需要加上类选择器标识
.。
修正方案
目标span的三个class分别为spacer-right、big、project-card-measure-secondary-info,对应的合法选择器写法为:
.spacer-right.big.project-card-measure-secondary-info
替换后可正常运行的测试代码如下:
browser.waitForElementVisible('.spacer-right.big.project-card-measure-secondary-info', 1000) .getText('.spacer-right.big.project-card-measure-secondary-info', (result) => { console.log(result) })
补充说明:
waitForElementVisible接口在超时找不到元素时会直接抛错中断测试流程,你之前控制台没有输出,本质是第一步元素等待就因为选择器错误执行失败了,根本没有走到后续getText的回调逻辑里。
内容的提问来源于stack exchange,提问作者TheCoder
相关产品推荐
相关产品推荐

