2011-12-07 17 views
14

आम तौर पर मैं पोर्ट 3000 पर रेल देव सर्वर का उपयोग करता हूं।कैपेबरा/रेल के साथ सेलेनियम चलाते समय, मैं सर्वर को कैसे कॉन्फ़िगर कर सकता हूं?

कैपिबारा/ककड़ी Capybara.server_port = 31337 का उपयोग करता है। अगर मैं सेलेनियम के लिए डिफ़ॉल्ट ड्राइवर से स्वैप, ऐसा लगता है कि यह बंदरगाह पर कनेक्ट करने के लिए कोशिश करता है की तरह 80

मैं समझने की कोशिश कर रहा हूँ:

  • सेलेनियम का उपयोग कर, मैं अलग से एक परीक्षण का दृष्टांत की आवश्यकता क्यों है परीक्षण पर्यावरण पर सर्वर।
  • यदि उपर्युक्त प्रश्न का उत्तर हाँ है, तो मैं इसे कैसे बना सकता हूं ताकि मैं बदलती चीजों को बनाए रखने के बिना वेब ड्राइवरों के बीच सहजता से स्वैप कर सकूं?

अगर किसी के पास env.rb कॉन्फ़िगरेशन का उदाहरण है जो मदद करेगा कृपया मुझे बताएं!

धन्यवाद!

क्रिस।

उत्तर

14

यदि आप सेलेनियम का उपयोग करते हैं, तो आपको परीक्षण वातावरण में वेब सर्वर शुरू करना चाहिए। आप इसे विकास से एक अलग बंदरगाह पर शुरू कर सकते हैं। तो फिर तुम कि पोर्ट का उपयोग करने Capybara कॉन्फ़िगर करना चाहिए:

Capybara.run_server = true #Whether start server when testing 
    Capybara.server_port = 8200 
    Capybara.default_selector = :css #:xpath #default selector , you can change to :css 
    Capybara.default_wait_time = 5 #When we testing AJAX, we can set a default wait time 
    Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing, make helpful when you hide or show elements using javascript 
    Capybara.javascript_driver = :selenium #default driver when you using @javascript tag 
    # Other option is: 
    # Capybara.javascript_driver = :webkit 

आप सर्वर हर बार शुरू करने के लिए इससे पहले कि आप अपने ककड़ी परिदृश्यों मैं तुम्हें capybara webkit ड्राइवर का उपयोग करने के लिए सुझाव चलाने नहीं करना चाहते हैं। सभी जावास्क्रिप्ट परिदृश्य पृष्ठभूमि में चलाएंगे। यह निरंतर एकीकरण सर्वर पर भी काम करेगा।

यदि आप लिनक्स प्लेटफ़ॉर्म पर हैं, तो कैपिबरा-वेबकिट को एक्स सर्वर चलाने की आवश्यकता होती है। इसे सेटअप करने के लिए आप headless मणि का उपयोग कर सकते हैं। यहां ककड़ी के लिए हेडलेस कॉन्फ़िगरेशन है:

# place code below in features/support/headless.rb 
if Capybara.current_driver == :webkit 
    require 'headless' 

    headless = Headless.new 
    headless.start 

    at_exit do 
    headless.destroy 
    end 
end 
4

यह आपके प्रश्न का उत्तर दे सकता है या नहीं, लेकिन यहां मेरी env.rb फ़ाइल (प्रासंगिक बिट्स) है।

Capybara.app_host = "http://0.0.0.0:3000" 
Capybara.server_port = 3000 

मैं भी वहाँ में यह है:

Capybara.register_driver :iphone do |app| 
    require 'selenium/webdriver' 
    profile = Selenium::WebDriver::Firefox::Profile.new 
    profile['general.useragent.override'] = "iPhone" 

    Capybara::Selenium::Driver.new(app, :profile => profile) 
end 

शायद तुम Capybara.app_host और register_driver सा अंदर .server_port लाइनों है और अपने ककड़ी लिपियों में ड्राइवर बदल सकते हैं। :/

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

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