在运行一组作用于覆盖窗口的特定 Selenium 测试时遇到问题。问题在于,覆盖窗口在显示时并未包含在 Firefox 浏览器窗口中(覆盖窗口的左侧被切断)。
奇怪的是,当测试在 Visual Studio 2010 中通过 ReSharper 使用 MbUnit 在本地运行时,它们运行得很好,并且覆盖层永远不会在浏览器窗口中显示截止(在测试运行期间浏览器窗口没有最大化) )。然而,当通过 Jenkins 作业使用 MbUnit 运行测试时,覆盖层的左侧被 Firefox 浏览器窗口的左侧切断(我尝试附加屏幕截图,但由于我是这里的新用户,所以我被阻止这样做)。
之所以出现这个问题,是因为需要单击一个“上传”按钮,但由于该按钮位于屏幕外,所以现在无法访问该按钮。这是测试失败时的错误:
System.InvalidOperationException: Element cannot be scrolled into view:[object HTMLDivElement]
Command duration or timeout: 56 milliseconds
Build info: version: '2.24.1', revision: '17205', time: '2012-06-19 17:28:14'
System info: os.name: 'Windows Server 2008 R2', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_33'
Driver info: driver.version: RemoteWebDriver
两个问题: 1)有谁知道为什么通过 Jenkins 运行测试会导致覆盖层显示在屏幕外? 2)有谁知道当测试运行时如何强制覆盖在浏览器窗口中显示?
谢谢你, 。亚当。
最佳答案
我面临着完全相同的问题。 解决方案: 设置固定的浏览器窗口大小以解决 Jenkins 中的此问题。
如果使用 driver.manage().window().maximize() 初始化浏览器窗口大小,某些 Jenkins 服务器的最大浏览器窗口大小可能会比本地计算机中的最大浏览器窗口大小小得多。在这种情况下,本地计算机浏览器中显示的某些元素(例如按钮)无法在 Jenkins 服务器的浏览器中显示。它会使本地传递的脚本在 Jenkins 中失败。初始化适当的窗口大小以进行测试
关于selenium - 运行 Selenium Test 时覆盖窗口显示在屏幕外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656919/