2012-07-25 35 views
2

我在运行一组在覆盖窗口上运行的Selenium测试时遇到问题。问题是覆盖窗口在显示时未包含在Firefox浏览器窗口中(覆盖页面的左侧被切断)。当运行Selenium Test时,Overlay窗口显示在屏幕外屏幕

奇怪的是,当通过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)没有人知道为什么詹金斯通过运行测试会导致叠加显示关闭屏幕? 2)有没有人知道我可以在测试运行时强制覆盖显示在浏览器窗口中?

谢谢你, 。亚当 。

+0

您是否找到想要共享的解决方案?或者下面的答案是否适合你? – user2918640 2017-12-08 16:30:26

回答

1

我面对完全相同的问题。 解决方案: 在Jenkins中设置固定的浏览器窗口大小以解决此问题。如果使用driver.manage()。window()。maximize()来初始化浏览器窗口大小,则某些Jenkins服务器的最大浏览器窗口大小可能会比本地计算机中最大的浏览器窗口大小小很多。在这种情况下,本地计算机浏览器中显示的某些元素(例如按钮)无法在Jenkins服务器的浏览器中显示。它会使本地传递的脚本在Jenkins中失败。初始化适当的窗口大小进行测试

1

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

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}"