1

每当我启动我的硒测试用例时,在远程桌面上运行时很少有(5-6)个测试用例失败。但是,当我在我的本地运行他们绝对正常工作。我的本地和RDP都有相同的chrome驱动程序版本,相同的操作系统(win7)和相同的浏览器版本。我在下面看到了strace中的两种错误。Selenium webdriver脚本在Chrome浏览器的远程计算机上失败

1.unknown错误:元素在点(611,449)处不可点击。其他元素将收到点击 2.stale元素参考:元素没有连接到

我使用的是远程wedriver 新RemoteWebDriver(新URL(driverUrl),browser.getCapabilities())的页面文件;

我不知道为什么他们中的一些仅仅在RDP上失败。任何帮助将不胜感激 。

+0

在我看来,它并没有以任何方式被分配给chrome,在远程firefox你会得到同样的例外。但这只是我的猜测。 – SkorpEN

回答

1

脚本通常有问题。 事情你可以做些什么来解决1)unknown error: Element is not clickable at point (611, 449). Other element would receive the click

  • 始终测试之前运行window.maximize()
  • 等待元素可见
  • 提高定位,有时它可能不会点击什么ü认为

需要修复的问题2.stale element reference: element is not attached to the page document: 无用web元素列表,每次使用元素时都要找到元素,这个问题通常会被修复。

0

当驱动程序在远程执行测试时,由于浏览器第一次出现,我已经看到它不会在我的桌面上启动到我的Web应用程序中。对于浏览器,当它由驱动程序启动时,它可能看起来像一个新用户。如果在运行测试时可以观察远程机器,您可能会看到这一点。这让我特别在使用Firefox时遇到了问题,我不得不进入引擎盖下的配置文件来杀死第一次运行行为。如果由于某些原因不方便观察在目标远程机器上运行的测试,您也可以尝试抓屏。

其他的想法...

在代码检查的元素,有时时间是一个问题,尝试睡眠并重新检查元素。如果目标在物理上位于网络较慢的其他位置,则时机可能是一个问题。

+0

Eelke,谢谢你的回应。我在远程看到任何差异。它的执行方式和我本地的一样。如果我不得不说在代码方面,奇怪的部分是不是每次都是相同的测试用例失败,一次测试用例另一次是另一个测试用例,但b/w我提到的2个错误,工作正常,没有任何问题本地。我的RDP具有比本地更高的配置,并且位于同一网络上。这可能是导致测试失败的原因吗? – maddie

+0

一些其他的想法,你的机器和遥控器之间的屏幕分辨率的差异可以使不同的区别。如果屏幕分辨率太小并且目标元素结束离开屏幕并且不被处理,则如另一篇文章中所建议的那样最大化可能没有帮助。尽管“永远最大化”意味着,但这个概念实际上是为了使测试在每台机器上都可以重复和相同。 – Eelke

+0

我有这个完全相同的问题。 Firefox/chrome在本地运行良好,但在我的ec2实例上调用测试时,它们随机失败。添加睡眠和最大化窗户没有奏效。你是如何解决这个问题的?我搜索了高和低,并没有发现有用的资源。 –

相关问题