2012-07-05 23 views
6

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

मैंने इसे भी देखा है; Is it possible to hide the browser in Selenium RC? लेकिन मेरे लिए कोई समाधान नहीं है। परीक्षण ऑपरेटिंग सिस्टम स्वतंत्र होना चाहिए और मैंने किसी भी विंडो को खोलने के बिना परीक्षण के लिए HtmlUnitDriver को आजमाया है लेकिन इसमें कुछ समस्या है। आईडी द्वारा घटकों को ढूंढने पर, यह आईडी द्वारा घटक नहीं मिल सकता है। कुछ सर्वर ब्राउज़र आईडी के अनुसार घटक आईडी भेज सकते हैं और मुझे नहीं पता कि मुझे किस आईडी का परीक्षण करने के लिए उपयोग करना चाहिए।

इसके कारण मैं क्रोम ड्राइवर का उपयोग करने की कोशिश कर रहा हूं।

क्रोम विंडो खोलने के बिना क्रोमड्राइवर का उपयोग करने का कोई तरीका है या जावा में सेलेनियम के साथ किसी भी विंडो को खोलने के बिना परीक्षण करने का कोई अन्य तरीका है?

धन्यवाद!

+0

में आपके आवेदन तैनात कर सकते हैं, मैं नहीं मानता कि एक ब्राउज़र-विशिष्ट ड्राइवर की खिड़की छुपा संभव है। – Avery

+0

लिंक किए गए प्रश्न में स्वीकृत उत्तर उन सभी संभावनाओं को सूचीबद्ध करता है जिन्हें मैं जानता हूं। HtmlUnitDriver को एक और मौका देने का प्रयास करें - लेकिन [जावास्क्रिप्ट समर्थन सक्षम होना सुनिश्चित करें] (http://code.google.com/p/selenium/wiki/HtmlUnitDriver)।यदि आप विशेष रूप से क्रोम चाहते हैं, तो आपको सॉसेलैब्स, लिनक्स और हेडलेस ड्राइवर, या परीक्षण चलाने वाले किसी भिन्न कंप्यूटर पर उल्लिखित दूरस्थ कॉल के साथ जाना होगा। –

उत्तर

6

PhantomJS के साथ जाएं लेकिन यदि क्रोमरेड्रिवर में उन्हें चलाना आवश्यक है और आपके पास संसाधन हैं, तो इस ब्लॉग पर running headless selenium with chrome पर एक अच्छी नुस्खा है। आप की आवश्यकता होती है निम्नलिखित डाउनलोड करने के लिए ...

  • VirtualBox
  • Vagrant
  • NodeJS

आप भविष्य में Jenkins या किसी अन्य सीआई को लागू करने की योजना है, मैं दृढ़ता से PhantomJS के साथ जा रहा सुझाव है हालांकि।

0

मुझे यह article पसंद है।

<dependency> 
    <groupId>com.github.detro.ghostdriver</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.1.0</version> 
</dependency> 

और रन कोड

System.setProperty("phantomjs.binary.path", "c:\\path\\to\\phantomjs-1.9.8-windows\\phantomjs.exe"); 
    WebDriver driver = new PhantomJSDriver(); 
    driver.get("http://www.google.com"); 
    driver.quit(); 

यह संस्करणों के साथ मेरे लिए काम किया:

    मूल रूप से आप (मैं निर्भरता प्रबंधन के लिए Maven की तरह) पोम में PhantomJS निर्भरता जोड़ने की जरूरत

  • फैंटॉमजेएस 1.9.8
  • फ़ैंटॉमजेएस ड्राइवर 1.1.0
  • सेलेनियम 2.44.0
0

सेलेनियम वेब ड्राइवर में बिना सिर मोड है। तो हेडलेस मोड में आप वेब ब्राउज़र खोलने के बिना स्वचालन कर सकते हैं। और भी आप मेरा मानना ​​है कि के रूप में सेलेनियम ब्राउज़रों के डोम इंजन का उपयोग करता कोई भी जीयूआई प्रणाली

ChromeOptions options = new ChromeOptions(); 
    // setting headless mode to true.. so there isn't any ui 
    options.setHeadless(true); 

    // Create a new instance of the Chrome driver 
    WebDriver driver = new ChromeDriver(options); 
+1

हालांकि यह कोड स्निपेट प्रश्न हल कर सकता है, [एक स्पष्टीकरण सहित] (http://meta.stackexchange.com/questions/114762/explaining-entirely- code-based-answer) वास्तव में आपकी गुणवत्ता में सुधार करने में मदद करता है पद। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और वे लोग आपके कोड सुझाव के कारणों को नहीं जानते हैं। –

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

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