2

在运行覆盖窗口的一组特定 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) 有谁知道我如何在测试运行时强制覆盖显示在浏览器窗口中?

非常感谢你, 。亚当 。

4

2 回答 2

1

我面临着完全相同的问题。解决方案:在 Jenkins 中设置固定浏览器窗口大小以解决此问题。

如果你用 driver.manage().window().maximize() 初始化浏览器窗口大小,一些 Jenkins 服务器的最大浏览器窗口大小可能比你本地计算机上的小很多。在这种情况下,本地计算机浏览器中显示的某些元素(例如按钮)无法在 Jenkins 服务器的浏览器中显示。它会使本地传递的脚本在 Jenkins 中失败。初始化适当的窗口大小以进行测试

于 2014-07-23T18:10:20.230 回答
1

我在 Jenkins 上遇到了同样的问题。我观察到命令browser.driver.manage.window.maximize仅根据可用的屏幕尺寸最大化窗口。我相信 Jenkins 默认的屏幕尺寸非常小。所以为了解决这个问题,我们必须手动指定屏幕尺寸。您可以通过在代码中添加以下内容来解决此问题

browser.driver.manage.window.resize_to(1920, 1080)
    maximizeDim = browser.driver.manage.window.size
    puts "screenHeight after maximizing: #{+maximizeDim.height}"
    puts "screenWidth after maximizing: #{+maximizeDim.width}"
于 2015-10-15T11:27:58.013 回答