2015-02-23 99 views
0

我正在使用selenium(java API)使用d3.js可視化對頁面進行自動化測試。我需要在圖表中找到一些數據點(svg)。 我的Chrome控制檯的屏幕截圖可能是解釋我的問題的最明確的方式: 我的元素具有不屬於HTML的數據屬性(__data__.key)。使用Selenium獲取不在HTML中的(d3)元素屬性

Chrome console screenshot

在JavaScript中,我可以簡單地通過<element>.__data__.key獲得的財產。 但在硒中,我無法檢索它(例如通過使用getProperty)。

有什麼建議嗎?

回答

0

我會用python解決它,但在JavaScript中也有類似的方法。可

兩種方案:

  • page_source()屬性

  • innerHtml屬性

兩種方法都與裝載後來通過AJAX DOM的互動,只要你訪問它在正確的時間。一旦你獲得了頁面的DOM源,你就可以實現你所需要的檢查。

page_source

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 
+0

我正在尋找的東西是在DOM,但不是在HTML。 pageSource和innerHTML,都只給我HTML。 – SirLenz0rlot 2015-02-23 15:29:56

+0

例如如果我試圖獲得我在屏幕截圖中選擇的元素的innerHTML,它將不會返回任何內容(因爲該元素內沒有html)。 – SirLenz0rlot 2015-02-23 15:33:23

+1

該解決方案已經在http://bl.ocks.org/erikvullings/raw/51cc5332439939f1f292/上進行過測試(硒的結果(兩種方案相同)爲http://pastebin.com/mkFEPnNY)在結果頁面中,您全部圖表對象裏面的數據 – aberna 2015-02-23 15:42:43

相關問題