javascript - 使用 Selenium 获取 DOM 中(而不是 HTML)中的 (d3) 元素的属性

标签 javascript dom selenium svg d3.js

我正在使用 selenium(java API)通过 d3.js 可视化自动测试页面。我需要在图表(svg)中找到一些数据点。 我的 Chrome 控制台的屏幕截图可能是解释我的问题的最清楚的方式: 我的元素有一个不在 HTML 中的数据属性 ( __data__.key )。

Chrome console screenshot

在 JavaScript 中,我可以简单地通过 <element>.__data__.key 获取属性。 但在 Selenium 中,我无法检索它(例如通过使用 getProperty )。

有什么建议吗?

最佳答案

我将使用 python 解决这个问题,但 javascript 中也可以使用类似的方法。

有两种情况:

  • page_source() 属性

  • innerHtml 属性

这两种方法都与稍后通过 AJAX 加载的 DOM 进行交互,前提是您在正确的时间访问它。一旦获得页面的 DOM 源,您就可以实现所需的检查。

页面来源

driver.get(url)
time.sleep(3)
source = driver.page_source
print source

innerHtml

driver.get(url)
time.sleep(3)
elem = self.driver.find_element_by_xpath("//*")
source = elem.get_attribute("innerHTML")
print source

关于javascript - 使用 Selenium 获取 DOM 中(而不是 HTML)中的 (d3) 元素的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28671388/

相关文章:

javascript - 如何使占位符不会在焦点上消失

javascript - 可滚动的主体问题

javascript - 自动输入文本输入

javascript - 删除纯 JS(非 jQuery)中焦点上的占位符属性

javascript - Window.top 在 WorkerGlobalScope 中未定义

python pandas重命名数据框

javascript - 类型 'Buffer' 不可分配给类型 'BlobPart'

javascript - 在 DOM 中查找生日

java - 如何在selenium中将值从列表存储到数组列表

ruby-on-rails-4 - 使用 Rails 4 的 cucumber 测试抛出错误 : element is not attached to the page document