Skip to main content
 首页 » 编程设计

python之如何使用 Selenium Webdriver 和 Python 在页面上有多个图表的选择器中获取正确的图表编号

2024年09月07日44kuangbin

我正在测试一个使用 highcharts 的网络应用程序。选择器看起来是这样的,同一张图表的 Highcharts 编号总是不同的。例如:

#highcharts-4 >div:nth-child(1) > span > div > span 

当页面上只有一个图表时,我执行以下操作,效果非常好:

[id^='highcharts-'] > div:nth-child(1) > span > div > span 

它选择 id 以字符串 'highcharts-' 开头的第一个元素,但是如果假设我有几个元素,我该如何选择第二个和第三个元素图表显示在同一页上?

例如,当有三个相同的图表时,每个图表上的相同元素将有以下选择器,ID 始终相差两个:

#highcharts-4 >div:nth-child(1) > span > div > span 
#highcharts-6 >div:nth-child(1) > span > div > span 
#highcharts-8 >div:nth-child(1) > span > div > span 

如何抓取第二个和第三个?

请您参考如下方法:

您应该能够使用该方法来选择与您的选择器匹配的多个元素:

my_charts = driver.find_elements_by_css_selector("[id^='highcharts-'] > div:nth-child(1) > span > div > span") 
for chart in my_charts: 
    print chart.text 

(你没有提到你用这些图表做了什么,但在这里我只是打印可能与之相关的任何文本)