我們使用Selenium和Java來自動化我們的Web應用程序。我們有工作代碼在Windows操作系統上爲三種瀏覽器(IE,Chrome,Firefox - 最新版本)運行自動測試腳本。無法使用Selenium Webdriver在MAC上最大化Safari瀏覽器
我們已經要求在MAC操作系統 - Safari瀏覽器上運行自動測試腳本。
環境細節:
MAC OS版本:MACOS塞拉利昂版本10.12.5
Safari瀏覽器版本:10.1.1(12603.2.4)
硒獨立服務器版本:3.4.0
Java版本:1.8.0_112
使用VNC查看器連接MAC VM(系統管理員團隊爲我們的測試提供了MAC VM)。
在MAC上執行測試腳本時,下面的代碼不能最大化Safari瀏覽器,該瀏覽器在Windows上適用於其他瀏覽器(IE,Chrome和Firefox)。由於這個原因,我們無法找到應用程序上的一些控件。
driver.manage().window().maximize();
我們沒有得到任何異常,代碼正在執行但沒有執行任何操作。
請幫助克服Safari瀏覽器最大化MAC問題。
真的,我認爲我的問題已經解決這個解決方案,嘗試代碼最大化Safari瀏覽器,但得到異常。
代碼:
SafariOptions options = new SafariOptions();
options.setUseCleanSession(true);
driver = new SafariDriver(options);
JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
org.openqa.selenium.Dimension d = new org.openqa.selenium.Dimension(intScreenWidth, intScreenHeight);
driver.manage().window().setSize(d);
例外:
2017年8月7日下午3點11分53秒org.openqa.selenium.remote.ProtocolHandshake 了createSession信息:檢測到的話:OSS在異常線程「主」 org.openqa.selenium.NoSuchWindowException:無法滿足使用窗口 的請求,因爲無法找到該窗口。 (警告:服務器沒有提供任何堆棧跟蹤信息) 命令持續時間或超時:27毫秒構建信息:版本: '3.4.0',修訂版本:'5234b32',時間:'2017-03-10 09:04 :52 -0800'System info:host:'Mac.local',ip:'fe80:0:0:0:4c6:11dc:3f91:11f8%en0', os.name:'Mac OS X', os.arch:'x86_64',os.version:'10 .12.6', java.version:'1.8.0_121'驅動程序信息: org.openqa.selenium.safari.SafariDriver功能 [{applicationCacheEnabled = true,rotate = false,databaseEnabled = true, handlesAlerts = true,版本= 12603.3。8,cleanSession =真, 平臺= MAC,nativeEvents =真,locationContextEnabled =假, webStorageEnabled =真,browserName =動物園,javascriptEnabled =真, platformName = MACOS,cssSelectorsEnabled =真}]會話ID: BA265536-18D3- 490E-B6DB-40D8BBF25937 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at org.openqa.selenium.remote.ErrorHandler.createThrowable(Constructor.java:423) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638) 在org.openqa.selenium.remote.RemoteWebDriver $ RemoteWebDriverOptions $ RemoteWindow.setSize(RemoteWebDriver.java:860) 在Sample.Safari.main(Safari.java:20)
嗨,我寫了修復程序。我可以確認Safari 11及更高版本不應該有問題中描述的問題。 –
太好了,謝謝Brian Burg – SeJaPy