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