Bla*_*ack 11 html javascript python selenium highcharts
我正在尝试使用Selenium从Highcharts图表中获取数据.我对此的问题是该setExtremes函数不起作用.options.data.setExtremes使用纯Python基础方法后如何读取数据?
我的代码:
capabilities = webdriver.DesiredCapabilities().FIREFOX
capabilities["marionette"] = True
driver = webdriver.Firefox(capabilities=capabilities, executable_path=gecko_binary_path)
driver.get(website)
time.sleep(5)
temp = driver.execute_script('return window.Highcharts.charts[0].series[0]'
'.xAxis[0].setExtremes(Date.UTC(2017, 0, 7), Date.UTC(2017, 0, 8))'
'.options.data'
)
data = [item for item in temp]
print(data)
Run Code Online (Sandbox Code Playgroud)
Paw*_*Fus -1
问题是setExtremes(min, max)方法返回undefined,所以你不能链接选项。解决方案是包装此方法并传递上下文,例如:
(function(H) {
H.wrap(H.Axis.prototype, 'setExtremes', function (proceed) {
proceed.apply(this, Array.prototype.slice.call(arguments, 1);
return this; // <-- context for chaining
});
})(Highcharts);
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用:
return window.Highcharts.charts[0].xAxis[0].setExtremes(min, max).series[0].options.data;
Run Code Online (Sandbox Code Playgroud)
注意:该代码片段可以放置在单独的文件中,并像任何其他 Highcharts 插件一样使用(只需在 Highcharts 库之后加载)。
重要的
Axis 对象仅引用绑定到该轴的系列。如果您想访问图表上的任何系列,请使用:
return window.Highcharts.charts[0].xAxis[0].setExtremes(min, max).chart.series[0].options.data;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |