诚然,这个有点晦涩难懂。我想做的是通过 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/