2012-11-22 13 views
29

मैं कुछ सेलेनियम-टेस्ट चला रहा हूं। जब मैं उन्हें ग्रहण से सीधे शुरू करता हूं तो सब कुछ ठीक काम करता है। लेकिन जब मैं उन्हें मैवेन के माध्यम से शुरू करता हूं तो निम्नलिखित अपवाद होता है:मैवेन में सेलेनियम के साथ बाइनरी फ़ायरफ़ॉक्स बाइनरी से कनेक्ट करने में विफल

org.openqa.selenium.WebDriverException(Failed to connect to binary FirefoxBinary(C:\winapp\Firefox\firefox.exe) on port 7055; process output follows: 
null 
Build info: version: '2.26.0', revision: '18040', time: '2012-11-02 09:44:45' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_35' 
Driver info: driver.version: FirefoxDriver) 

मैं फ़ायरफ़ॉक्स 10.0.10 ESR का उपयोग कर रहा हूं। मैंने सेलेनियम 2.25.0 के साथ भी कोशिश की है।

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.10</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.26.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-server</artifactId> 
     <version>2.26.0</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.servlet</groupId> 
       <artifactId>servlet-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>com.thoughtworks.xstream</groupId> 
     <artifactId>xstream</artifactId> 
     <version>1.4.1</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.jdom</groupId> 
     <artifactId>jdom2</artifactId> 
     <version>2.0.3</version> 
    </dependency> 
</dependencies> 

अगर मैं अधिक जानकारी के साथ आप का समर्थन कर सकते हैं, तो कृपया मुझे बताएं:

यहाँ pom.xml की मेरी नवीनतम संस्करण है।

संपादित करें: अद्यतन pom.xml

EDIT2: क्या मुझे सबसे ज्यादा आश्चर्य, कि मैं ans समस्याओं के बिना ग्रहण से परीक्षण चलाने कर सकते हैं। वे सिर्फ occure, अगर मैं फोन उदाहरण

+0

सेलेनियम सर्वर विरूपण साक्ष्य सर्वलेट-api-2.5 विरूपण साक्ष्य है, जो आप करना, अलग करना चाहिए अगर अपनी परियोजना एक वेब अनुप्रयोग कंटेनर के अंदर चलाया जाएगा करने के लिए एक निर्भरता है। –

+0

इसके अलावा आपको सेलेनियम-एपी निर्भरता की आवश्यकता क्यों है? –

+0

मैंने अभी कुछ चीजों की कोशिश की। अब मैंने बहिष्करण जोड़ा है और सेलेनियम-एपी निर्भरता को हटा दिया है, लेकिन समस्या अभी भी वही है – kirschmichel

उत्तर

5

मुझे पता चला कि समस्या कहां थी।

मैंने फ़ायरफ़ॉक्सप्रोफाइल में जोड़ने के लिए कुछ एक्सटेंशन लोड किए हैं जिनका उपयोग मैं फ़ायरफ़ॉक्स ड्रायवर को तुरंत चालू करने के लिए करता हूं। ये प्लगइन्स जहां जावा/मुख्य/संसाधनों के अंतर्गत स्थित है। ग्रहण में सबकुछ ठीक काम करता था, लेकिन मैं इन प्लगइनों को मेवेन के माध्यम से नहीं पहुंच सका। इन फ़ाइलों को अस्थायी फ़ोल्डर में कॉपी करने के बाद, और वहां से उन्हें लोड करने के बाद यह मेवेन से भी काम करता था।

आपकी मदद के लिए धन्यवाद

3

अपने पोम

अपडेट करने के लिए इस जोड़ने की कोशिश कर रहा के लिए "mvn स्थापित":

<dependency> 
    <groupId>org.seleniumhq.webdriver</groupId> 
    <artifactId>selenium-firefox-driver</artifactId> 
    <version>2.XX.X</version> 
</dependency> 

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-server</artifactId> 
    <version>2.XX.X</version> 
</dependency> 
+0

की सहायता नहीं करता है मुझे मिला नवीनतम संस्करण 0.9.7376 था। इसे मेरे पोम में जोड़ने के बाद, अभी भी एक ही समस्या है – kirschmichel

+0

क्षमा करें मेरा बुरा मैं संस्करण को अपडेट करना भूल गया।इस संस्करण के साथ भी –

+1

, त्रुटि अभी भी होती है – kirschmichel

26

जब मैं इस त्रुटि का सामना करना यह आम तौर पर दो चीजों में से एक है।

सेलेनियम संस्करण ब्राउज़र संस्करण डबल जाँच सेलेनियम/ब्राउज़र संस्करणों में एक ही जब बनाम Maven ग्रहण से भाग गया समर्थन नहीं करता है। डबल चेक ग्रहण और मेवेन को उसी सेलेनियम संस्करण का उपयोग करने के लिए कॉन्फ़िगर किया गया है। यह मेरे लिए हुआ जब मेरे ब्राउज़र ऑटो अपडेट्स इसलिए मैंने ब्राउज़र में इसे बंद कर दिया।

सेलेनियम परीक्षण नेतृत्वहीन मोड में चल रहे हैं संभावना यदि ग्रहण के रूप में एक ही मशीन पर अपने मैन्युअल रूप से क्रियान्वित करने mvn। यह मेरे जेनकिन्स सर्वर पर मेवेन के माध्यम से सेलेनियम चलाते समय मेरे लिए हुआ। जेनकींस सर्वर हेडलेस मोड में चल रहा था। हेडलेस सामान को समझने के लिए मुझे मिनट लगा, मुझे लगता है कि मैंने लिनक्स या कुछ में एक DISPLAY env चर सेट किया है।

+0

आपके उत्तर मैथ्यू के लिए धन्यवाद, लेकिन मैंने एफआईआर को सुनिश्चित करने के लिए कई बार कदम उठाया और दूसरा मेरे लिए फिट नहीं हुआ, क्योंकि मैं परीक्षण चलाता हूं उसी भौतिक मशीन पर – kirschmichel

+2

DISPLAY env चर सेट करने के बाद, समस्या ठीक हो गई थी? मुझे लगता है कि मैं एक ही मुद्दे पर चल रहा हूं। – jlars62

+0

DISPLAY इसे ठीक करें। साथ ही, अगर यह किसी मॉनिटर के साथ काम करता है या HtmlUnit ड्राइवर के तहत काम करता है तो यह संभवतः एक हेडलेस समस्या है। –

0

आप इस समस्या को हल करने की कोशिश कर में नवीनतम संस्करण के लिए दोनों फ़ायरफ़ॉक्स और सेलेनियम नवीनीकृत किया है, और आप अभी भी समस्या का सामना कर रहे हैं, तो आप फ़ायरफ़ॉक्स पुनरारंभ का उपयोग कर "अद्यतन करने के लिए अपडेट किया हो "।

फ़ायरफ़ॉक्स बंद करें और सुनिश्चित करें कि फ़ायरफ़ॉक्स निष्पादन योग्य नहीं चल रहा है। फिर अपने परीक्षण का प्रयास करें। यह अब काम करना चाहिए।

मेरा अनुमान है कि यह जब वास्तव में फ़ायरफ़ॉक्स द्विआधारी जब आप "पुनः प्रारंभ अद्यतन करने के लिए" का उपयोग

1

हम एक ऐसी ही समस्या यह है कि लिनक्स अपडेट के बाद दिखाई दिया था अद्यतन किया जाता है से संबंधित है। हमने सेलेनियम संस्करणों (2.42.2 और 2.43.1) और फ़ायरफ़ॉक्स (27.0.1 से 32.0.2) के बहुत सारे संयोजन का परीक्षण किया, लेकिन समस्या हमेशा मौजूद थी।

हम ओपनमांड्रिवा के अंतर्गत हैं, और परियोजना ग्रहण और मेवेन के अधीन है।

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-firefox-driver</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-support</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-api</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.0</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.3.5</version> 
    </dependency> 

मुझे आश्चर्य है अगर यह समाधान केवल वास्तविक समस्या छिपा है:

हम हमारे लिए एक समाधान है, Maven निर्भरता निम्नलिखित

<dependency> 
     <groupId>org.seleniumhq.selenium</groupId> 
     <artifactId>selenium-java</artifactId> 
     <version>2.43.1</version> 
    </dependency> 

निम्नलिखित लोगों के सभी से बदलने के लिए किया गया है कि पाया?

-2

वही समस्या तब भी होती है जब डिस्क पर कोई बायां स्थान नहीं होता है जहां आपका फ़ायरफ़ॉक्स कैश फ़ोल्डर स्थित होता है। बस जगह खाली करें और अपनी स्क्रिप्ट लॉन्च करें!

0

मैं फ़ायरफ़ॉक्स 36 के साथ इस मुद्दे था, यह भी लोगों को 35 और 44

में एक ही सामना कर रहे थे निष्कर्ष के लिए, अपने Firefox 37 में अपग्रेड करें या कुछ भी करने के लिए इसे डाउनग्रेड कम से कम 33.

-1

नहीं खोजा जा सका फ़ायरफ़ॉक्सबाइनरी पथ। फ़ायरफ़ॉक्स ड्राइवर का उपयोग करने से पहले फ़ायरफ़ॉक्स पथ सेट करें। अपने निर्माण के रास्ते में ios-server-0.6.5-jar-with-dependencies.jar, और संयोजन का उपयोग कर -

System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); 
0

थोड़ी देर के लिए इस से जूझ और सबसे की कोशिश कर (यदि सभी नहीं) यहाँ सूचीबद्ध विकल्पों में से, मैं अंत में इस त्रुटि के एक अप्रयुक्त जार को हटाने के द्वारा छुटकारा पा लिया करने के बाद FF34 और सेलेनियम जार 2.48.2 का।

कोई भी इस दुर्बल मुद्दे में भाग लेने के मामले में इसे एक और विकल्प के रूप में पोस्ट करना चाहता था। सेलेनियम hq.org से -

0
my recommendation is 

    ===> switch to firefox version 50.0 [latest One] , 

    ===> download the gecko driver from [.](https://github.com/mozilla/geckodriver/releases) and 

    ===> Selenium version 3.0.1 
    <dependency> 
       <groupId>org.seleniumhq.selenium</groupId> 
       <artifactId>selenium-java</artifactId> 
       <version>3.0.1</version> 
    </dependency> 

    ==> On your Code 
private WebDriver driver; 
System.setProperty("webdriver.gecko.driver", "PATH to GECKO DRIVER"); 
     driver = new FirefoxDriver(); 

    and yes you see the below output in your console : 


    Dec 17, 2016 6:40:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
    INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
    14819XXXXXXX5 mozprofile::profile INFO Using profile path C:\Users\User\AppData\Local\XXXXX\rust_XXXprofile.OXXXXXXXXXXX7S 
    148XXXXXXXXX0 geckodriver::marionette INFO Starting browser C:\Program Files\Mozilla Firefox\firefox.exe 
    148XXXXXXXXX1 geckodriver::marionette INFO Connecting to Marionette on localhost:XXXXXXX 
    148198XXXX077 Marionette INFO Listening on port 53532 
    Dec 17, 2016 6:40:55 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
    INFO: Detected dialect: W3C 
    [Child 4104] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line XXXX 
    Dec 17, 2016 6:41:13 PM org.openqa.selenium.os.UnixProcess destroy 
संबंधित मुद्दे