微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 无法使用Selenium Webdriver在MAC上最大化Safari浏览器

我们正在使用Selenium和Java自动化我们的Web应用程序.我们有工作代码在Windows操作系统上为三种浏览器(IE,Chrome,Firefox – 最新版本)运行自动化测试脚本.

我们已经要求在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();

我们没有得到任何异常,代码正在执行但没有执行任何操作.

请帮助克服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);

例外:

Aug 07, 2017 3:11:53 PM org.openqa.selenium.remote.ProtocolHandshake
createSession INFO: Detected dialect: OSS Exception in thread “main”
org.openqa.selenium.NoSuchWindowException: A request to use a window
Could not be satisfied because the window Could not be found.
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 27 milliseconds Build info: version:
‘3.4.0’, revision: ‘5234b32’, time: ‘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’ Driver info:
org.openqa.selenium.safari.SafariDriver Capabilities
[{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}] Session 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)

解决方法:

将Safari版本升级到11.0后,Safari浏览器最大化问题得到解决(12604.1.35)

工作代码

driver.manage().window().maximize();

原文地址:https://codeday.me/bug/20190622/1264410.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐