java - WebDriverException : unknown error: failed to change window state to maximized, 当前状态对于 MacOSX 上的 ChromeDriver v2.43 和 Chrome 70 是正常的

标签 java macos selenium google-chrome selenium-chromedriver

我的 macOS 刚刚将 chrome 自动升级到 v70,我相应地将 chromedriver 升级到最新版本,但是,由于调用时出现以下错误,我的 Selenium 自动化测试无法运行

tempDriver.manage().window().maximize();

错误信息是

org.openqa.selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal
  (Session info: chrome=70.0.3538.67)
  (Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.14.0 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 111 milliseconds
Build info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'jingfeideMacBook-Pro.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14', java.version: '1.8.0_111'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=MAC, acceptSslCerts=false, goog:chromeOptions={debuggerAddress=localhost:58298}, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8), userDataDir=/var/folders/mc/p32y5m3503b8qrq4nv3fjc280000gn/T/.org.chromium.Chromium.tp2flf}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, version=70.0.3538.67, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: 5010a1722b23e3829ebcb8b45ceab234
    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:193)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.maximize(RemoteWebDriver.java:783)

有什么想法吗?我知道 Selenium 的版本有点旧,但由于公司政策或其他原因,我无法升级它。

巴林

最佳答案

在问题解决之前,您可以通过以下方式绕过此问题:

自定义窗口大小

driver.manage().window().setSize(new Dimension(1920, 1080));

获取屏幕分辨率

Toolkit toolkit = Toolkit.getDefaultToolkit();
int width = (int) toolkit.getScreenSize().getWidth();
int height = (int) toolkit.getScreenSize().getHeight();

chrome 的参数

ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");

Javascript 执行器

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");

关于java - WebDriverException : unknown error: failed to change window state to maximized, 当前状态对于 MacOSX 上的 ChromeDriver v2.43 和 Chrome 70 是正常的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884937/

相关文章:

java - 如何从 JCAPS 迁移到 WSO2 ESB

java - 如何注册多个Spring配置文件?

swift - 当 AVAudioPlayer URL 为 nil 时停止崩溃?

java - 尝试在 OSX 中编译 Maven 插件时 JVM 崩溃

ios - 尝试升级到特定版本时出现 Flutter "Unable to checkout version branch for version number"

selenium - 开放层的自动化测试可能吗?

java - 定位 Selenium 中的元素

java - 在 MaprDB 中存储文档(.pdf、.doc 和 .txt 文件)

java - 对 JTables 和 ActionPerformed 感到困惑

java - 如何在断言中将值写入字符串