当前位置: 首页 > 知识库问答 >
问题:

WebDriver窗口调整Chrome Driver 2.28 Chrome 57的大小

杜经艺
2023-03-14

我已经在我的webdriver自动化中使用了set position来更改浏览器窗口大小。当我用Chrome driver 2.28运行代码时,它会抛出以下异常

**Exception starting line:**

driver.manage().window().setPosition(new Point(pos_x, pos_y));


**Trace:**

**Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot get automation extension**


from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
  **(Session info: chrome=57.0.2987.110)
  (Driver info: chromedriver=2.28.455520** (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 10.21 seconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'


System info: host: 'TESTVM', ip: 'xx.xx.xx.xx', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_121'

Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.28.455520 (cc17746adff54984afff480136733114c6b3704b), userDataDir=C:\Users\xxxxx\AppData\Local\Temp\scoped_dir21364_25403}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, **version=57.0.2987.110**, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]
Session ID: 2af85eb51f31434f8df972a737b82bd4

实际的用例是打开多个Chrome窗口,并使所有窗口都处于焦点中。现在,我无法调整窗口的大小。

最终ChromeOptions选项=新ChromeOptions();最终字符串adminToolURL=“http://www.google.com”;Options.AddArguments(“--disable-extensions”);

    final WebDriver driver = new ChromeDriver(options);
    driver.manage().window().setSize(new Dimension(500, 600));

    driver.get(adminToolURL);
    driver.getWindowHandles();
    final String adminToolHandle = driver.getWindowHandle();
    int x = 0, y = 30;
    String window = "win";
    for (int i = 1; i <= 3; i++) {
        window = window + String.valueOf(i);
        System.out.println(x);
        System.out.println(y);
        ((JavascriptExecutor) driver)
        .executeScript("window.open('https://www.google.com','"
            + window + "',height=" + x + ",width=" + y + ");");
        final String handle = driver.getWindowHandle();

        driver.switchTo().window(handle.toString());
        // driver.manage().window().setPosition(new Point(pos_x, pos_y));
        pos_x = pos_x + 180;
        if ((i % 7) == 0) {
            pos_y = pos_y + 160;
            pos_x = 0;
        }
        x += 30;
        y += 40;
        Thread.sleep(2000);
        final Set<String> customerWindow = driver.getWindowHandles();
        customerWindow.removeAll(customerWindow);
        driver.switchTo().window(adminToolHandle);
    }
    Thread.sleep(600000);
    driver.quit();
}

共有1个答案

丌官翰采
2023-03-14

我也遇到了这个问题。

解决方案原来非常简单--你需要用选项启动ChromeDriver。

var options = new ChromeOptions();
options.AddArgument("start-maximized");
_driver = new ChromeDriver(options);

代码在C#上。在jave上肯定是差不多的。

因此,这是一个解决办法,您可以最大化浏览器而不得到错误。

 类似资料:
  • 窗口大小,我们可以非常方便的使用width、height调整,但是如何知道 width和height是一个问题? 在 Window 操作系统中,假如我们想要缩放,我们通常会把鼠标移动到窗口的右边栏,和底部边栏,以及右下边栏。 而且在不同的边栏,鼠标呈现的样式也是不一样的。当我们在右边栏的时候我们可以通过cursor: e-resize;模拟鼠标样式。 在底部边栏我们可以通过cursor: s-re

  • #include <stdio.h> void fun1(void) { int i = 0; i++; i = i * 2; printf("%d\n", i); } void fun2(void) { int j = 0; fun1(); j++; j = j

  • 我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:

  • 问题内容: 我有以下JQuery代码: 唯一的问题是,这仅在首次加载浏览器时有效,我是否还希望在调整窗口大小时进行检查? 有任何想法吗? 问题答案: 这是一个使用jQuery,javascript和css处理调整大小事件的示例。 (如果您只是通过调整大小来设置样式(媒体查询),最好的方法是CSS) [ CSS javascript jQuery 如何停止调整大小的代码执行如此频繁! 这是绑定到调整

  • 问题内容: 我正在使用Java编写一个简单的绘画程序,并且每当调整JFrame组件的大小时,我都希望调用某种方法。但是我找不到像windowResizedListener之类的任何方法或诸如windowResizedEvent之类的事件。我能做什么?! 问题答案: 实现一个具有:

  • 问题内容: 我是Redux的新手,我想知道是否有人对处理非React事件(如窗口调整大小)的最佳做法有一些建议。在我的研究中,我从React官方文档中找到了此链接:https : //facebook.github.io/react/tips/dom-event- listeners.html 我的问题是,在使用Redux时,应该将窗口大小存储在我的商店中还是应该将其保持在单独的组件状态? 问题答