使用Selenium(Python)

时间:2016-08-19 12:36:49

标签: python selenium svg

我有以下代码可以找到svg中的所有g,但是如何在g和它们的路径值中获取这些路径元素呢?

我正在使用此网站进行测试:http://www.totalcorner.com/match/live_stats/57565755

相关代码:

nodes = self.driver.find_elements_by_xpath("//div[@id='all_container']/*[@id='highcharts-0']/*[name()='svg']/*[name()='g']")

我已经尝试过这个:

nodes = self.driver.find_elements_by_xpath("//div[@id='all_container']/*[@id='highcharts-0']/*[name()='svg']/*[name()='g']/*[name()='path']")

然而我得到的是这样的:

[<selenium.webdriver.remote.webelement.WebElement (session="fb86fb35-d2fa-974a-af32-a15db1b7459d", element="{c1dad34f-764d-0249-9302-215dd9ae9cd8}")>, <selenium.webdriver.remote.webelement.WebElement (session="fb86fb35-d2fa-974a-af32-a15db1b7459d", element="{a53816f4-9952-ab49-87ac-5d79538a855d}")>, ...]

我如何使用它来查找路径值? 非常感谢

我的更新解决方案:

感谢大家的努力。在Robert Longson的更新答案之后,我认为以下是更好的解决方案:

nodes = driver.find_elements_by_xpath("//div[@id='all_container']/*[@id='highcharts-0']/*[name()='svg']/*[name()='g']/*[name()='path']")
for node in nodes:
    print(node.get_attribute("d"))

因为如果使用driver.find_elements_by_tag_name我无法区分路径,我认为上面的答案更好。

2 个答案:

答案 0 :(得分:3)

您正在获取一个列表,请尝试:

href

如果您正在寻找某个属性的值,请使用以下内容(此处以print(node.get_attribute('href')) 为例):

org.eclipse.ui.ide

答案 1 :(得分:2)

find_elements_by_tag_name可用于查找路径子项。

一旦你有了这些,get_attribute(&#34; d&#34;)将获得路径值。

E.g。

for node in nodes:
    paths = node.find_elements_by_tag_name("path")
    for path in paths:
        value = path.get_attribute("d")