如何使用带有Python的Selenium Webdriver和页面上的几个图表在选择器中获取正确的高图号码?

时间:2018-01-20 00:03:46

标签: python selenium selenium-webdriver highcharts

我正在测试使用highcharts的Web应用程序。选择器看起来像这样,同一图表的高图号总是不同的。例如:

#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

我如何抓住第二个和第三个?

1 个答案:

答案 0 :(得分:2)

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

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

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