如何在同一页上获得多个高位图表的动态选择器

2024-04-24 02:47:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序有很多Highchart图表,它们的所有选择器都以#highcharts-10开头,同一个图表的内部数字总是不同的。当一个页面上只有一个图表时,我在每个选择器中使用[id^='highcharts-']。例如:

#highcharts-10 > svg > tspan

变成:

[id^='highcharts-'] > svg > tspan

我做得很好,但是如果我在同一页上有三张图表,我想不出能做什么。这些图表ID看起来确实符合+2步骤的顺序。所以如果第一个是10,另外两个是12和14。有什么建议吗?你知道吗


Tags: svgid应用程序顺序图表步骤选择器数字
1条回答
网友
1楼 · 发布于 2024-04-24 02:47:06

要区分具有相似选择器的节点,可以尝试

  • 按唯一XPath搜索:

    first = driver.find_element_by_xpath('(//*[starts-with(@id, "highcharts-")]/*[name()="svg"]/*[name()="tspan"])[1]')
    second = driver.find_element_by_xpath('(//*[starts-with(@id, "highcharts-")]/*[name()="svg"]/*[name()="tspan"])[2]')
    third = driver.find_element_by_xpath('(//*[starts-with(@id, "highcharts-")]/*[name()="svg"]/*[name()="tspan"])[3]')
    
  • 按元素列表的索引搜索(注意使用find_elements...而不是find_element...

    first = driver.find_elements_by_css_selector("[id^='highcharts-'] > svg > tspan")[0]
    second = driver.find_elements_by_css_selector("[id^='highcharts-'] > svg > tspan")[1]
    third = driver.find_elements_by_css_selector("[id^='highcharts-'] > svg > tspan")[2]
    

相关问题 更多 >