2012-07-25 48 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}"