तक नहीं पहुंच सकता है, मैं डॉकराइज्ड सेलेनियम स्टैंडअलोन फ़ायरफ़ॉक्स ब्राउज़र पर रेल फीचर टेस्ट पर रुबी चलाने की कोशिश कर रहा हूं। ऐसा लगता है कि मुझे नेटवर्किंग के साथ समस्याएं हैं क्योंकि सेलेनियम उदाहरण को कैपिबरा द्वारा शुरू किए गए यूआरएल से कनेक्ट नहीं कर सकता है।डॉकराइज्ड सेलेनियम ब्राउजर कैपिबरा टेस्ट यूआरएल
यहाँ मेरी नमूना docker-compose.yml
फ़ाइल है:
ff:
image: selenium/standalone-firefox:2.48.2
container_name: firefox-browser
web:
build: .
container_name: my-app
volumes:
- ".:/home/ubuntu/my-app"
command: /bin/bash -l scripts/docker-start-tests.sh
ports:
- "3000:3000"
और मैं शुरू नेटवर्किंग सक्षम साथ डोकर-रचना:
docker-compose --x-networking up
परीक्षण स्क्रिप्ट इस
rspec ./spec/features/login_spec.rb:43
की तरह एक rspec आदेश चलाता है डॉकर परीक्षणों के लिए मैंने कैपिबरा के लिए दूरस्थ ड्राइवर सक्षम किया है:
Capybara.register_driver :docker_firefox do |app|
Capybara::Selenium::Driver.new(app, {
browser: :remote,
url: "#{ENV['FF_URL']}/wd/hub",
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox
})
end
और अंत में मैं इस तरह परीक्षण फोन:
unless ENV['FF_URL'].nil?
Capybara.current_driver = :docker_firefox
Capybara.javascript_driver = :docker_firefox
Capybara.app_host = "http://my-app:56555"
Capybara.server_port = "56555"
# Capybara.server_host = "my-app"
end
visit root_path
save_and_open_screenshot
click_link "Sign in"
...
मैं पूंछ ब्राउज़र कंटेनर लॉग और मुझे लगता है कि सेलेनियम Capybara से आदेश प्राप्त करता है। समस्या यह है कि यह प्रदान किए गए यूआरएल से कनेक्ट नहीं हो सकता है, जिसे मैं स्क्रीनशॉट के साथ पुष्टि कर सकता हूं।
फ़ायरफ़ॉक्स मेरी-ऐप पर सर्वर से कनेक्शन स्थापित नहीं कर सकते: 56555
बेहतर समस्या को समझने के लिए, मैं रेल एप्लिकेशन शुरू किया और मैं सेलेनियम कंटेनर से यह तक पहुँचने का प्रयास । मुझे लगता है कि अगर मैं एक आईपी बाध्यकारी के साथ रेल ऐप शुरू करता हूं तो मैं केवल सेलेनियम कंटेनर से ऐप तक पहुंच सकता हूं।
rails s Puma -b 0.0.0.0
यह नेटवर्किंग समस्या की तरह दिखता है, लेकिन मैं समाधान का पता नहीं लगा सकता।
मैं सेलेनियम कंटेनर कैलीबारा के साथ रुपेक फीचर परीक्षण चलाने वाले रेल ऐप तक कैसे पहुंच सकता हूं?
capybara (2.6.0)
selenium-webdriver (2.48.1)
आपकी सहायता के लिए धन्यवाद।
सर्वर धागा रेल Capybara.server_host (डिफ़ॉल्ट रूप से 127.0.0.1) को बांधता में परीक्षण ऐप को चलाता है - आप जो कुछ भी है कि आईपी इंटरफेस डोकर कंटेनर पर अपनी मशीन के लिए वापस बात कर सकते हैं करने के लिए परिवर्तित करने का प्रयास कर सकते हैं - हो सकता है 0.0.0.0 –
@TomWalpole क्या आप 'Capybara.app_host' का जिक्र कर रहे हैं? मैं कंटेनर चलने वाले रेल के लिए असाइन किए गए आईपी को पार्स करता हूं और मैं इसे app_host पर पास करता हूं। फिर भी, मैं सेलेनियम कंटेनर से इसका उपयोग नहीं कर सकता। – artsince
नहीं - Capybara.app_host का उपयोग ब्राउज़र को मिलने वाले पते बनाने के लिए किया जाता है, Capybara.server_host ब्राउज़र से कनेक्शन के लिए आईपी परीक्षण परीक्षण सुनता है –