【发布时间】:2023-03-17 09:58:01
【问题描述】:
我们的应用程序有一个始终在 dom 中的角度叠加层(尽管并不总是可见)。有时当我尝试单击页面上的元素时,Selenium 会抛出一个错误...
元素在点 (544, 297) 处不可点击。其他元素会 收到点击:div class="overlay" style="transition-property: 不透明度; -webkit-transition-property:不透明度;过渡时间: 300毫秒; -webkit-transition-duration:300ms;过渡定时功能: 轻松进出; -webkit-transition-timing-function:缓入出局;展示: 堵塞;不透明度:0;">
还有其他人经历过吗? webdriver .isDisplayed 总是报告它是假的,即使它仍然禁止点击。
我已经编写了一些附加到量角器的 waitForAngular 函数的代码,该函数检查覆盖层的 dom 元素的各种状态(等到它具有值为“none”的 display: 属性)。这很有帮助,除非浏览器在后台执行,否则我不再遇到此问题。如果浏览器不在前台,那么我会经常遇到覆盖问题。当量角器在等待时(基于我等待角度覆盖),如果我将浏览器带到前台,那么测试会立即开始继续执行,并且覆盖层的 dom 状态会发生变化。
希望有见识的人提出任何想法。
我认为 .isDisplayed 无法正常工作似乎是网络驱动程序问题。而且我还假设叠加层在后台被卡在特定的 dom 状态是一个角度问题。
【问题讨论】:
-
消除过渡所花费的时间有什么不同吗?
-
我遇到了类似的问题。你有想过解决办法吗?
标签: javascript angularjs selenium selenium-webdriver protractor