【发布时间】:2018-06-29 21:15:41
【问题描述】:
我正在尝试使用 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)
【问题讨论】:
-
这个 JS 是否可以在使用开发控制台的浏览器中工作?
-
相关
HTML请。 -
@JeffC 不,它没有。 t 可能是操作顺序已关闭,即在系列期间必须调用
setExtremes,但我已经用尽了所有努力。 -
您可以在单个执行脚本中将两条带分号的语句组合在一起,如下所示 temp = driver.execute_script(' window.Highcharts.charts[0].xAxis[0].setExtremes(Date.UTC(20) 17, 0, 7),Date.UTC(2017, 0, 8));return 返回 window.Highcharts.charts[0].series[0].options.data')
-
这取决于如何处理bound的变化。如果数据已经被缓存,那么使用@Murthi 建议的两个语句。如果没有,图表可能必须请求服务器获取数据,这意味着您必须等待使用
execute_sync_script刷新数据。注意可以通过Highcharts.charts[0].userOptions.series[0].data获取缓存数据。
标签: javascript python html selenium highcharts