appium定位弹幕时如果弹幕刷新快的话就定位不到

如题所述,如果弹幕很活跃,刷新很快的话基本定位不到,经常报StaleElementReferenceException,试过加显式等待时间,网上说不要遍历抓取到的WebElement列表,去遍历列表的长度,还有说遍历定位方式的,也有说获取到异常后再次获取text的,能试的方式都试了,还是不行,这种情况还有什么其他好的解决方式么?

前提描述的不是很详细,是说想要抓取视频一类app播放时出现的弹幕信息么?

是的,比如直播间人们说的话,如果很活跃的那种的直播间,好多人在不停的说话,那就会刷新的很快,就抓不到了

感觉你这是要跟时间赛跑了。

  • 你可以用find elemtns找到所有的弹幕,然后优先从最右边的弹幕开始点击,这样时间相对会多点
  • 换个更快的定位引擎,可能要自己去实现了,比如uiautomator就有自己的watch机制,appium也支持这个特性。
  • 如果是web的话,直接用js去搞会更好点,js的执行是最快的。

:joy:没错,就是在和时间赛跑,类似于在抖音直播间拿红框里边弹幕的文字
image
现在就是用的find_elements


但是如果弹幕刷新的很快,基本上去拿text的时候这个元素已经不在DOM里了,所以总是报错,试了各种办法,感觉好像用appium是不可能都拿到的 :sweat_smile:不知道是不是还有我不知道的办法

人多的话那肯定拿不到,我觉得你直接用坐标定位更好些。直接就在红框的百分比坐标里点击不就行了。

现在不是想点击,现在就是想把人们发的弹幕内容都拿出来。我明明什么等待都没加,也没加sleep,appium跑的时候感觉还是会等待,这是咋回事 :sweat_smile: