我最近开始使用Selenium来测试我的Web应用程序。 在对我的计算机上使用硒进行测试(没有问题通过)后,我尝试在自定义Docker容器中运行相同的测试,但它只是开始抛出带有消息的WebDriverException:
Element <button ...> is not clickable at point (...). Other element would receive the click: <app-...>
(Session info: headless chrome=72.0.3626.121)
(Driver info: chromedriver=2.41.578700 (...), platform=Linux 3.16.0...)
这让我很困惑,因为正常运行测试时不会出现该问题(这不是在Docker容器上,而是在我的PC上)。即使在容器中,它也确实设法找到了登录按钮并单击它,但是事后查找任何内容都会引发上述异常。
在基本级别上,应用程序的构建方式如下: 您从登录屏幕开始。登录后,您可以通过按操作菜单按钮执行一些操作,该按钮会显示可用操作列表。这是问题开始的地方。
对于我制作的Dockerfile,这是一些非常基本的东西:
我使用py.test运行测试。
我已经尝试了许多解决上述异常的解决方案,包括更改无头窗口的大小并等待直到“阻塞”元素消失而无济于事。我认为值得一提的一个关键细节是,“阻塞”元素实际上是我要单击的按钮的祖先元素:
<obstructing ...>
// ...
<button ...> </...>
// ...
</ ...>
这让我难过了好几天了。我确定该解决方案非常简单,我在阅读如何与docker一起使用硒时错过了,但是我不知道它可能是什么。