python - 使用 Selenium (Python) 在 svg 中获取路径

标签 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 无法区分路径,我认为上面的答案更好。

最佳答案

你得到了一个列表,所以尝试:

for node in nodes:
    print(node.text)

如果您要查找属性的值,请使用以下内容(href 此处作为示例):

print(node.get_attribute('href'))

关于python - 使用 Selenium (Python) 在 svg 中获取路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39039232/

相关文章:

python - 在 python 中创建独立于平台的 GUI 可执行文件

python - 数量到 RGB 颜色之间的连续映射?

java - 使用 Maven 从 Ubuntu 在 Jenkins 中集成 Selenium

java - 我的 appium 测试在一台设备上运行两次,但我需要在两台设备上并行运行它

react-native - React Native 如何从 url 渲染 svg

html - CSS:带有文本和渐变背景/边框的响应式拉长六边形

python - 在 Python 上使用 Memoization 计算一个简单的 'ATM'

python - 如何让客户端上传直接到S3而不是通过Django代理

javascript - 无法使用使用execute_script Selenium的javascript点击按钮

css - 如何在没有 javascript 的情况下使 svg 路径适合某些 px 大小