首页 > 解决方案 > driver.manage(...).window(...).getSize 不是 selenium 中的函数

问题描述

我正在为网页编写硒测试。我只想获取网页的高度。

看看下面的代码。它使用 geckodriver,它是一个 firefox webdriver。

const { Builder, By } = require("selenium-webdriver");
const { writeFile } = require("fs");

async function pageLoad() {
  let driver = await new Builder().forBrowser("firefox").build();

  try {
    await driver.get("http://example.com/");
    const size = await driver.manage().window().getSize();
    console.log(size);
  } catch (err) {
    console.log(err.message);
  } finally {
    await driver.quit();
  }
}

此代码在下面生成错误 driver.manage(...).window(...).getSize is not a function

但是,我在其他代码中看到人们使用 getSize 没有任何问题。我到处搜索,这是我在 stackoverflow 上发布的最后一个选项。

我正在使用 MacOS Catalina 和 Visual Studio Code。我是一个非常优秀的 web 开发人员,对 javascript 有很强的掌握。但是,我是硒的新手。

标签: javascriptseleniumgeckodriverselenium-firefoxdriver

解决方案


我能够继续getRect而不是getSize.

const size = await driver.manage().window().getRect();

但是,仍然困扰我的一件事是为什么下面两行的输出不同?

await driver.executeScript("return window.screen.height");
await window.getRect().height;

推荐阅读