2014-06-20 5 views
7

नीचे किस प्रकार की त्रुटि है। यह तब होता है जब मैं ग्रहण में webdriver स्क्रिप्ट को निष्पादित:सेलेनियम वेबड्राइवर विनाश के बारे में त्रुटि

जून 20, 2014 13:20:54 org.openqa.selenium.os.UnixProcess $ SeleniumWatchDog destroyHarder जानकारी: कमान सफाई से बंद करने के लिए विफल रहा है। बलपूर्वक नष्ट (v2)। [email protected]

उत्तर

5

यह एक बग है। मुझे लगता है कि आप 29 के लिए अपने फ़ायरफ़ॉक्स डाउनग्रेड करने के लिए आप फ़ायरफ़ॉक्स 30. उपयोग कर रहे हैं

कृपया शीर्ष पर वापस जाएँ के लिए नीचे दिए गए यूआरएल को खोजने के लिए है

https://code.google.com/p/selenium/issues/detail?id=7506

+2

आलेख में यह भी उल्लेख किया गया है कि कोई प्लगइन-कंटेनर.एक्सई (मेरे लिए काम करता है, मैं एफएफ 30 का उपयोग कर रहा हूं) हटा सकता हूं। ऐसा लगता है कि एफएफ 31 इस समस्या को सेलेनियम 2.41+ – Huy

+1

के लिए तय करता है, जो एफएफ 31 में अपग्रेड करने के बाद स्थिति को बेहतर नहीं लगता है। मैं प्लगइन-कंटेनर.एक्सई – Huy

1

मैं भी एक ही समस्या के बाद से मैं करने के लिए उन्नत का सामना करना पड़ रहा है फ़ायरफ़ॉक्स। फ़ायरफ़ॉक्स प्लगइन के साथ एक प्लगइन संगतता त्रुटि की तरह लगता है। मुझे यकीन नहीं है कि यह डाउनग्रेडिंग मदद करेगा या नहीं।

लेकिन मैंने driver.quit() को हटा दिया; मेरे कोड से क्योंकि मैं नहीं चाहता था कि ब्राउज़र स्क्रिप्ट के निष्पादन के बाद भी बंद हो जाए। इसने त्रुटियों को रोक दिया।

0

अपने टेस्ट एनोटेशन में एक कोशिश पकड़ ब्लॉक जोड़ें।

try { 
    Thread.sleep(2000); 
} catch (InterruptedException e) { 
e.printStackTrace(); 
} 

या आप यह भी

try{ 
driver.close(); 
} 
} catch (InterruptedException e) { 
e.printStackTrace(); 
} 
में

कोशिश कर सकते हैं एनोटेशन के बाद।

इसे समस्या का समाधान करना चाहिए।

+0

को हटाने के साथ जाने का विकल्प चुन रहा हूं अपवाद को पकड़ना हल नहीं कर रहा है, यह एक कामकाज है। शायद एकमात्र विकल्प हो सकता है, लेकिन अभी भी .... – rene

+0

@ मरियम, आपके पास दूसरे नमूने में एक अतिरिक्त ब्रैकेट है जो गलत नहीं होने पर इसे असंभव बनाता है। –

3

मुझे चार में से एक परीक्षण परियोजना में इस समस्या का सामना करना पड़ रहा है।

ExpectedCondition<Boolean> pageLoadFinishedCondition = new ExpectedCondition<Boolean>() { 
     public Boolean apply(WebDriver driver) { 
      return ((JavascriptExecutor) driver).executeScript(
        "return document.readyState").equals("complete"); 
     } 
    }; 

WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(pageLoadFinishedCondition); 
:

प्रारंभिक जांच मुझे निष्कर्ष ऐसा होता है कि जब पृष्ठ अभी भी लोड कर रहा है, जबकि (टैब में हरे रंग का गोला)

आप जावा का उपयोग करते हैं तो आपको निम्न कोशिश कर सकते हैं फ़ायरफ़ॉक्स छोड़ने की कोशिश करने के लिए नेतृत्व

युपीडी:

लेकिन यह ध्यान रखें कि घटना से थोड़ा पहले ही पूरी हो फ़ायरफ़ॉक्स बंद हो जाता है कि हरे रंग का गोला है, तो आप थोड़ा निष्क्रिय करना पड़ सकता है 'दस्तावेज़ तैयार है'।

आगे की जांच से पता चला कि यह एप्लिकेशन पर बहुत निर्भर है (और मेरे मामले में, काम नहीं किया) E.g. एप्लिकेशन के लॉगिन पेज पर होने पर, मैं बाहर निकल नहीं पाया, जबकि डैशबोर्ड पर होने पर सब कुछ ठीक था।

मैं सुझाव है कि आप निम्न प्रयास करें:

  1. डाउनग्रेड फ़ायरफ़ॉक्स < 30 (समस्या 33 में बनी रहती है)
  2. जबकि एप्लिकेशन के दूसरे पृष्ठ पर जा रहा से बाहर निकलें करने के लिए
  3. मेक (यहाँ कुछ ठूंठ आविष्कार) driver.navigate().refresh(); या ऐसा कुछ।
  4. विशाल से पहले छोड़ने सुस्ती() कभी कभी में मदद करता है, कहते हैं, 2 * implicitlywait

युपीडी:

  1. इसके अलावा, को हटाने प्लगइन-container.exe मदद हो सकती है। ध्यान दें कि मैंने एक हटा दिए जाने के बाद, फ़्लैश अब मेरे पृष्ठ में लोड नहीं हो रहा था।
0
बस

driver.quit(); 

उपयोग की बजाय

:

+0

ऐसा करने पर, आप इरादे से छोड़ने() से अपवाद दबाते हैं। हालांकि अपवाद उत्पन्न होता है क्योंकि वहां कोई और खुली ब्राउज़र विंडो नहीं है। लेकिन मुझे यकीन नहीं है, अगर आपका समाधान लॉग को हटाए जाने से नहीं रोकता है। –

-1

यह मेरे लिए काम करता है, दिलचस्प। लेकिन यह इस मामले पर लागू होता है कि जब आप बंद() को छोड़ते हैं तो केवल एक ब्राउज़र खुलता है()।

driver.close(); 
    try { 
     Thread.sleep(1000); 
     //driver.quit(); 
    } catch (Exception e) { 
    } 
संबंधित मुद्दे