我尝试在Chrome上为Microsoft Dynamics CRM 2016创建一些自动化UI脚本。
在某些情况下,我得到一个例外,即我试图点击的元素会被其他元素窃取。后一个元素,我会称之为小偷。
我的方法是等待小偷使用stalenessOf
从DOM中删除,然后继续执行我的其余脚本。
为什么stalenessOf不适合我
有时,初始错误会给出一个css id来帮助跟踪它。但是,尝试在ID上调用stalenessOf
甚至findElement
失败了(小偷在10000
超时之前找不到位置)。也许是因为它可能包含在iFrame中,当转换完成时它也会消失。
为什么我无法获得有关小偷的更多信息
如果我可以找出小偷元素在陈旧之前就坐在DOM中的框架,这可能会给我一个前进的方向。然而,该元素似乎存在不到一秒钟,我不能在它变得陈旧之前足够快地检查DOM(假设我知道要检查的屏幕的哪个点,我不知道)。
目前,我正在使用Sleep(1000)
进行攻击,但正如您所想,我想尽可能避免这种情况。
摘要
总之,我需要一种方法来捕获页面加载时作为DOM一部分的某种临时元素的细节,这样我就可以在其上调用stalenessOf
类型方法,等到它陈旧以继续剧本的其余部分。