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

如何在量角器/网络驱动程序JS中设置默认浏览器窗口大小

劳和歌
2023-03-14

由于某种原因,当我在工作中运行测试时,浏览器被最大化,但是当我在家运行测试时,它只打开了大约50%宽度的浏览器窗口。这导致向下滚动时出现一些差异,等等。所以我希望它在每台运行测试的机器上打开一个同样大小的浏览器窗口。做这件事的最好方法是什么?

(我已经为其他语言找到了一些答案,但我还不能将它们应用于JavaScript)

添加

browser.executeScript('window.moveTo(0,0);' +
    'window.resizeTo(screen.width, screen.height);');

不执行任何操作(显然,Google Chrome不支持<code>window.moveTo<code>和<code>window.resizeTo<code>)。

共有3个答案

柯波
2023-03-14

如果首选方法:

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

对您不起作用(例如在Xvfb中运行量角器测试),那么您也可以以这种方式最大化窗口(量角器.conf.js):

onPrepare: function() {
    setTimeout(function() {
        browser.driver.executeScript(function() {
            return {
                width: window.screen.availWidth,
                height: window.screen.availHeight
            };
        }).then(function(result) {
            browser.driver.manage().window().setSize(result.width, result.height);
        });
    });
},

打字脚本版本:

import {Config, browser} from "protractor";

export let config: Config = {
    ...
    onPrepare: () => {
        setTimeout(() => {
            browser.driver.executeScript<[number, number]>(() => {
                return [
                    window.screen.availWidth,
                    window.screen.availHeight
                ];
            }).then((result: [number, number]) => {
                browser.driver.manage().window().setSize(result[0], result[1]);
            });
        });
    }
};
丁良骏
2023-03-14

您还可以使用< code>config.js来设置窗口大小:

// config.js
specs: [
    ...
],
capabilities: {
    browserName: 'chrome',
    chromeOptions: {
        args: ['--window-size=800,600'] // THIS!
    }
}
// ....
顾超
2023-03-14

您可以通过运行以下命令来设置默认浏览器大小:

var width = 800;
var height = 600;
browser.driver.manage().window().setSize(width, height);

要最大化浏览器窗口,请运行:

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

要设置位置,请运行:

var x = 150;
var y = 100;
browser.driver.manage().window().setPosition(x, y);

如果您收到错误:

Web驱动程序错误: 未知错误: 不支持远程调试操作

使用远程调试时不支持操作某些WebDriver命令(例如调整浏览器窗口大小)需要在浏览器中加载Chrome扩展。ChromeDriver通常会在每次启动新的Chrome会话时加载这个“自动化扩展”。

但是,系统可以指示 Chrome 驱动程序连接到现有的 Chrome 会话,而不是启动新的会话。这是使用“功能”(又名“Chrome 选项”)对象中的“调试器地址”完成的。由于自动化扩展仅在启动时加载,因此在通过远程调试处理现有会话时,ChromeDriver 不支持某些命令。

如果您看到错误“使用远程调试时不支持操作”,请尝试重写测试,以便它启动新的 Chrome 会话。这可以通过从“功能”对象中删除“调试器地址”来完成。

源:使用远程调试时不支持此操作

 类似资料:
  • 问题内容: 由于某些原因,当我在工作中运行测试时,浏览器会最大化,但是当我在家运行测试时,它只会打开大约50%宽度的浏览器窗口。这会导致向下滚动等方面的差异,因此理想情况下,我希望在运行测试的每台计算机上,以相同大小打开浏览器窗口。最好的方法是什么?(我找到了其他语言的一些答案,但无法将它们改编成JavaScript) 新增中 什么也不做(显然,Chrome不支持)。 问题答案: 您可以通过运行以

  • 问题内容: 因此,关于使用Capybara和RSpec进行集成测试,我知道我可以这样做: 如何设置浏览器窗口大小的Rspec的(selenium)为特定的RSpec的测试,但有没有办法做到这一点在全球范围使每一个被媒体查询测试的影响没有定义呢? 问题答案: 您可以在下定义

  • 我试图创建一个跨浏览器的测试脚本。因此,无论我使用哪种(或),我都需要所有结果相同。我可以按以下方式设置浏览器窗口大小:

  • 我尝试在我的办公室内联网连接中使用硒网络驱动程序启动火狐浏览器。收到错误消息: 线程“main”org.openqa.selenium.remote中出现异常。UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。 [![Selenium Web驱动程序错误消息][2]][2] 谁能在这方面帮助我。

  • 我正在使用SeleniumWebDriver进行网站测试。现在我想在SeleniumWebDriver中设置TestNG。怎么可能呢?testng有JAR文件吗?