2011-10-10 10 views
7

मैं ज़ेनके एप्लिकेशन का परीक्षण करने के लिए सेलेनियम का नवीनतम संस्करण और chromedriver का उपयोग कर रहा हूं।मैं सेलेनियम जावा 2.8 के साथ वर्तमान डोम कैसे प्राप्त करूं?

परीक्षण के दौरान, मैं उन तत्वों को ढूंढने में सहायता के लिए डीओएम (या इसका हिस्सा) डंप करना चाहता हूं (और शायद उन लोगों की सहायता करें जिन्हें परीक्षण बनाए रखना है)।

विधि WebDriver.getPageSource() वादा करने लग रहा था, लेकिन यह केवल HTML को लौटाता है क्योंकि यह सर्वर द्वारा भेजा गया था, न कि सभी जावास्क्रिप्ट कोड चलाने के बाद परिणाम।

जावास्क्रिप्ट कोड चलाया गया है; मैं आईडी द्वारा तत्व पा सकता हूं कि मैं getPageSource() के आउटपुट में नहीं देख सकता। तो मैंने WebElement.getText() की कोशिश की लेकिन यह केवल तत्वों का पाठ है, न कि तत्व स्वयं या उनके गुण।

क्या यह संभव है कि डोम प्राप्त करें या मुझे यहां कीहोल सर्जरी करना है?

उत्तर

1

मैं एक ही सवाल वास्तव में है, लेकिन एक ही तरीका है कि मैं यह कर पाया है ExecuteScript है:

/// <summary> 
     /// Gets the parentElement/Node of a particular element 
     /// </summary> 
     /// <param name="driver"></param> 
     /// <param name="element"></param> 
     /// <returns></returns> 
     public static IWebElement GetElementParent(IWebDriver driver,IWebElement element) 
     { 
      return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element); 
     } 

क्यों एक समारोह मैं वास्तव में नहीं जानता कि साथ तक का समर्थन नहीं करता By.DOM .. मुझे संदेह है कि कई ब्राउज़रों आदि के लिए वेबड्राइवर की आवश्यकता के कारण

+0

ठीक है, क्योंकि पृष्ठ में jQuery शामिल है, मैं '$ (तर्क [0]) चलाकर जो चाहता हूं उसे प्राप्त कर सकता हूं। Html() ', मुझे लगता है : - / –

संबंधित मुद्दे