运行Selenium Test时,屏幕上会显示叠加窗口

时间:2012-07-25 19:13:54

标签: selenium jenkins overlay

运行在叠加窗口上运行的特定Selenium测试集时出现问题。问题是当显示时,覆盖窗口不包含在Firefox浏览器窗口中(覆盖的左侧被切断)。

奇怪的是,当在Visual Studio 2010中通过ReSharper使用MbUnit在本地运行测试时,它们会很好地传递,并且覆盖层永远不会在浏览器窗口中显示截止(浏览器窗口在测试运行期间未最大化)。但是,当使用MbUnit通过Jenkins作业运行测试时,覆盖的左侧会被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)有人知道如何在测试运行时强制覆盖在浏览器窗口中显示吗?

谢天谢地,  。亚当。

2 个答案:

答案 0 :(得分:1)

我面对完全相同的问题。 解: 设置固定的浏览器窗口大小以在Jenkins中修复此问题。

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

答案 1 :(得分:1)

我在詹金斯身上遇到过同样的问题。我发现命令 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}"