2011-11-23 19 views
9

मैं सेलेनियम वेबड्राइवर का उपयोग कर रहा हूं और किसी समस्या में भाग ले रहा हूं।सेलेनियम वेबड्राइवर क्रियाओं को कैसे डिबग करें?

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

मुझे इस व्यवहार को समझ में नहीं आता है। यदि यह वेबड्राइवर द्वारा देखा जाता है, तो इसे क्लिक करना चाहिए। मैंने कार्यों का उपयोग करने की कोशिश की है। वह भी वही व्यवहार दिखाता है।

इस समस्या को कैसे डिबग करें? कोई विचार? कोड डिबग करने के लिए

उत्तर

2

केवल रास्ता WebDriverEventListener आसपास आवरण लिखना और लॉग को सुनने के लिए है। अन्यथा, यह संभव नहीं है।

+0

क्या आपके पास इसके लिए कोड है? मुझे रैपर में बहुत दिलचस्पी है और साथ ही साथ सेलेनियम 2 वेबड्राइवर में लॉग सेट अप करने के लिए। – MacGyver

+1

@MacGyver, वेबड्राइवर 2.15.0 से, लॉगिंग शुरू की गई है। इसलिए, मुझे लगता है कि इसके लिए कोड लिखने की कोई आवश्यकता नहीं है। यहां तक ​​कि आप लॉग स्तर सेट कर सकते हैं। नवीनतम संस्करण आज़माएं। – Rajasankar

+0

मुझे पता चला कि इस रैपर का उपयोग किए बिना विजुअल स्टूडियो में इसे कैसे किया जाए। अधिक जानकारी के लिए मेरा जवाब देखें। – MacGyver

4

लिटिल रिमाइंडर: वेबड्राइवर पृष्ठ पर उन तत्वों के लिए खोज सकता है जो सीएसएस द्वारा "छिपा" हैं।

ये आइटम पाए जाते हैं, लेकिन क्लिक-सक्षम (या कोई अन्य कार्रवाई नहीं) हैं।

विधि कॉल करने का प्रयास करें();

0

यदि आप नुनिट और सी # क्लाइंट ड्राइवरों का उपयोग कर रहे हैं, तो आप टूल्स> प्रक्रिया में संलग्न>> nunit-agent.exe "> अटैचमेंट पर जाकर विजुअल स्टूडियो को अपने nunit-agent.exe प्रक्रिया में संलग्न कर सकते हैं।

ग्रहण में nunit-agent.exe प्रक्रिया को जोड़कर, आप जुनीट और जावा क्लाइंट ड्राइवरों का उपयोग करते समय भी ऐसा ही कर सकते हैं।

===========

अपने अन्य सवालों के जवाब देने के लिए ...

1.) आपको जावास्क्रिप्ट देखने के लिए अपने ड्राइवर के लिए पर देशी घटनाओं चालू करने के लिए आवश्यकता हो सकती है आयोजन।

2.) मुझे मूल्य प्राप्त करने/सेट करने के लिए वेबड्राइवर के साथ कुछ सॉफ़्टवेयर बग भी मिले। इनर एचटीएमएल (उर्फ गेटटेक्स्ट) को पकड़ने के लिए इन्हें आजमाएं जिन्हें आप अपने प्रश्न में समझा रहे थे। यह .NET 4.0 कोड है .. इसलिए आपको इसे उचित रूप से संशोधित करने की आवश्यकता हो सकती है। ये मेरी एलिमेंट क्लास में हैं, इसलिए नेस्टेड तत्व कॉल पर "एलिमेंट" का उपसर्ग।

public static int GetInnerHtmlByXPathTypeInt(IWebDriver driver, string xpath) 
{ 
    return int.Parse(Element.GetInnerHtmlByXpath(driver, xpath)); 
} 
public static double GetInnerHtmlWithoutDollarSignByXPath(IWebDriver driver, string xpath) 
{ 
    return double.Parse(Element.GetInnerHtmlByXpath(driver, xpath).Replace("$", string.Empty)); 
} 

public static string GetValueByXPath(IWebDriver driver, string xpath) 
{ 
    return driver.FindElement(By.XPath(xpath)).GetAttribute("value"); 
} 

public static string GetInnerHtmlByXpath(IWebDriver driver, string xpath) 
{ 
    return driver.FindElement(By.XPath(xpath)).Text; 
} 
संबंधित मुद्दे