2012-01-13 8 views
19

मैं सेलेनियमएचक साइट से उदाहरण कोड का उपयोग कर रहा हूं - लेकिन डीबग मोड में प्रदर्शन भयानक है।सेलेनियम InternetExplorerDriver वेबड्राइवर डीबग मोड (दृश्य स्टूडियो 2010 और आईई 9) में बहुत धीमा क्यों है

रिलीज मोड में पूरे परीक्षण में लगभग 6 सेकंड लगते हैं (आईई लॉन्च करने और बंद करने सहित) डीबग मोड में 65 सेकंड लगते हैं?

नमूना कोड सिर्फ है:

[Test] 
    public void testBrowser() 
    { 
     // Do something here 
     IWebDriver driver = new InternetExplorerDriver(); 
     //Notice navigation is slightly different than the Java version 
     //This is because 'get' is a keyword in C# 
     driver.Navigate().GoToUrl("http://www.google.com"); 
     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Cheese"); 
     System.Console.WriteLine("Page title is: " + driver.Title); 
     // TODO add wait 
     driver.Quit(); 

    } 

मैं IE8 में यह कोशिश की और एक ही प्रदर्शन किया है। फ़ायरफ़ॉक्स ठीक है - लेकिन मेरे क्लाइंट आईई का उपयोग करते हैं, इसलिए मैं इसके खिलाफ परीक्षण के साथ अटक गया हूं। इसके अलावा - अगर मैं सेलेनियम आरसी का उपयोग करता हूं तो मेरे पास एक ही समस्या नहीं है।

एनबी - मैं नेट 4 और webDriver.dll का नवीनतम संस्करण (2.16) (क 64 बिट विंडोज 7 बॉक्स पर चल रहा है)

+0

ऐसा लगता है कि यह x64 मोड में चलने से संबंधित है? जब मैं इसे x86 डीबग मोड में चलाने के लिए मजबूर करता हूं तो प्रदर्शन ठीक है? –

+2

वही प्रश्न लेकिन सेलेनियम टीम से अधिक जानकारी: http://groups.google.com/group/selenium-users/browse_thread/thread/4543181e60251841/65eaeab241c7ff8a?lnk=raot&pli=1 –

+0

मुझे एक ही समस्या है InternetExplorerDriver के 32 बिट और 64 बिट संस्करण। और मैंने नोट किया कि कुछ ऑपरेशन के बीच लंबे विराम के साथ, ixplorer.exe प्रक्रिया को मेरे CPU का लगभग 30% से 60% मिलता है जबकि परीक्षण निष्पादित होता है। – Luciano

उत्तर

12

जांच '32 बिट पसंद करते हैं' का उपयोग कर रहा अपने निर्माण में चेक नहीं किया गया गुण। यदि यह है और आप 64 बिट आईई ड्राइवर का उपयोग कर रहे हैं तो यह एक अस्थमात्मक घोंघा की तरह दौड़ जाएगा।

25

मेरे लिए, ठीक से https://code.google.com/p/selenium/downloads/list

कदाचित नामित IEDriverServer आजकल InternetExplorerDriver.exe के 32 बिट संस्करण के लिए स्विच करने के लिए गया था, लेकिन काम करता है अगर आप सिर्फ InternetExplorerDriver.exe के लिए यह नाम बदलें।

+1

यह एक साल बाद मेरे लिए काम नहीं कर रहा है, आईई 9 x32 के साथ विन 7 x64, IEDriverServer.exe के दोनों संस्करणों का परिणाम बहुत धीमी गति से होगा। – MrDoom

+1

IEDriverServer अब अगर आप देख रहे हैं http://www.seleniumhq.org/download/ – Zymotik

+0

यह समाधान मेरे लिए सेलेनियम संस्करण 2.52 (फरवरी 2016) के रूप में काम करता है – Chris

2

सी #, एनयूनीट, सी # वेबड्राइवर क्लाइंट और आईड्रिवर सर्वर का उपयोग करके, मुझे मूल रूप से धीमी इनपुट के साथ समस्या थी (उदाहरण के लिए, इनपुट बॉक्स में कुंजी भेजने के लिए चाबियों के बीच लगभग 5 सेकंड लगेंगे, या एक बटन पर उसी तरह की देरी होगी)।

फिर, इस धागे को पढ़ने के बाद, मैंने 32-बिट IEDriverServer पर स्विच किया, और यह समस्या को हल करने लग रहा था।

लेकिन आज मैं InternetExplorerOptions के साथ प्रयोग किया गया था इस दस्तावेज़ के अनुसार IE पर कुछ विकल्प सेट करने के लिए वस्तु:

https://code.google.com/p/selenium/wiki/InternetExplorerDriver

प्रलेखन के अनुसार, मैं रजिस्ट्री मान HKCU \ Software \ Microsoft \ बनाया ForceCreateProcessApi = true और BrowserCommandLineArguments = "-private" का उपयोग करने के लिए इंटरनेट एक्सप्लोरर \ Main \ TabProcGrowth 0 के मान के साथ।

ऐसा करने के बाद, मैंने देखा कि धीमी-इनपुट समस्या वापस आई थी। मैंने अपने कोड में कई बदलाव किए हैं, लेकिन उन सभी को वापस रोल करने के बाद, समस्या अभी भी बनी हुई है। जब मैंने उपर्युक्त रजिस्ट्री कुंजी को हटा दिया, हालांकि, इनपुट पूर्ण गति (कोई देरी नहीं) पर वापस आ गया था।

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