javascript - 尝试通过 selenium 访问 highcharts 时超出最大调用堆栈大小

标签 javascript google-chrome selenium highcharts

诚然,这个有点晦涩难懂。我想做的是通过 driver.execute_script 方法并传入 javascript 从 Selenium 驱动的 chrome 实例访问 highchart 数据:

driver.execute_script("return $('#chartID').highcharts().series[0].data")

Selenium 引发错误 Selenium::WebDriver::Error::UnknownError 未知错误:超出最大调用堆栈大小

driver.execute_script("return $('#chartID').highcharts()")
driver.execute_script("return Highcharts.charts")

两者都返回相同的错误。

应该注意的是,这两个 javascript 行都可以在 chrome 的非 selenium 实例中的开发控制台中工作。

这是我正在使用的指南:http://ahumbleopinion.com/highcharts-tips-accessing-chart-object-from-container-id/

最佳答案

所以基本上我解决这个问题的方法就是通过在 Highcharts 返回的数据数组上使用 reduce 函数来减少从 execute_script 返回的数据量。

driver.execute_script <<-js
  return Highcharts
           .charts[0]
           .series[0]
           .data
           .map(function (data) { return data.y })
js

关于javascript - 尝试通过 selenium 访问 highcharts 时超出最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29954054/

相关文章:

html - 奇怪的位置绝对 chrome 错误

google-chrome - GOOGLE ERROR : In order to select an item from your online storage, 请登录

javascript - 如何在jqm的 ListView 中拖放li?

javascript - .load() 适用于 IE 和 Dreamweaver 预览版,但不适用于 Opera 和 chrome

java - Selenium Webdriver 通信错误

python - 有没有办法在没有文件名的情况下找到Python错误的根源?

c# - 如何基于Selenium搭建可靠的并行浏览器环境

javascript - 旋转数组并返回最大数,不适用于非常大的数

javascript - 无法更改选择更改时的输入值

javascript - AngularJS:具有不同属性的数组数组中的 ngIf