我们需要在MAC操作系统上运行自动化测试脚本 - Safari浏览器。
环境详细信息:
MAC OS版本:macOS Sierra版本10.12.5
Safari浏览器版本:10.1.1(12603.2.4)
Selenium独立服务器版本:3.4.0
Java版本:1.8.0_112
连接了MAC VM和VNC查看器(Sys管理员团队为我们的测试提供了MAC VM)。
在MAC上执行测试脚本时,下面的代码无法最大化Safari浏览器,在Windows上其他浏览器(IE,Chrome和Firefox)正常工作。由于这个问题,我们无法定位应用程序上的某些控件。
driver.manage().window().maximize();
我们没有得到任何异常,代码正在执行但没有执行任何操作。
请帮忙解决MAC上Safari浏览器最大化问题。
我曾以为我的问题已经解决了,尝试用代码来最大化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 INFO: 检测到方言: OSS 主线程中的异常 org.openqa.selenium.NoSuchWindowException: 由于窗口未找到,无法满足使用窗口的请求。 (警告: 服务器没有提供任何堆栈跟踪信息) 命令持续时间或超时: 27毫秒 构建信息: 版本: '3.4.0',修订版: '5234b32',时间: '2017-03-10 09:04:52 -0800' 系统信息: 主机名: 'Mac.local',IP: 'fe80:0:0:0:4c6:11dc:3f91:11f8%en0',操作系统名称: 'Mac OS X',操作系统架构: 'x86_64',操作系统版本: '10.12.6',Java版本: '1.8.0_121' 驱动程序信息: org.openqa.selenium.safari.SafariDriver 能力 [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true,handlesAlerts=true, version=12603.3.8, cleanSession=true,platform=MAC, nativeEvents=true, locationContextEnabled=false,webStorageEnabled=true,browserName=safari, javascriptEnabled=true, platformName=macOS, cssSelectorsEnabled=true}] 会话ID:BA265536-18D3-490E-B6DB-40D8BBF25937 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638) at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.setSize(RemoteWebDriver.java:860) at Sample.Safari.main(Safari.java:20)