硒webdriver的窗口对象为空数组

时间:2019-03-11 06:22:32

标签: javascript selenium

我正在尝试从Selenium实例获取window对象。我有以下代码:

driver.executeScript(() => {
    return window;
})
.then(res => {
    console.log(res)
})

但是此控制台res出于某种原因是空数组:[]

1 个答案:

答案 0 :(得分:3)

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html硒文档之后,driver.executeScript()仅返回以下值类型:

  1. 对于HTML元素,此方法返回一个WebElement
  2. 对于小数,返回一个Double
  3. 对于非十进制数字,将返回Long
  4. 对于布尔值,将返回布尔值
  5. 对于所有其他情况,将返回字符串。
  6. 对于数组,请遵循上述规则,为每个对象返回一个List。我们支持嵌套列表。
  7. 对于地图,请返回具有遵循上述规则的值的地图。 除非该值为null或没有返回值,否则将返回null

这意味着它无法返回窗口。

我建议不要将所有的JavaScript逻辑放在executeScript方法中,而不是返回窗口对象,然后返回上述任何类型的值。 然后在代码中将该值用于其他逻辑。