2012-06-25 42 views
2

我試圖在所有測試之前運行Capybara服務器以獲得服務器端口,我應該在URL中包含像'http://subdomain.domain.au:CURRENT_PORT_NUMBER/' Rspec Capybara在運行第一次訪問方法之前得到端口

# I create new session: 
session = Capybara::Session.new(:selenium) 
# then I start browser 
session.driver.browser 
# And try to get port number like some folks suggested 
Capybara.current_session.driver.rack_server.port # => nil 
# And get nil 

在我看來,瀏覽器啓動時,你應該有一些端口號。或者我錯了? 我不希望所有請求的硬編碼端口號。 可以anyboady建議如何獲得端口訪問我的應用程序。

據我瞭解,瀏覽器是另一個過程,可以在沒有本地服務器的情況下啓動。只有當你通過網絡查詢服務器時,這纔會讓你感覺到。 'selenium'測試啓動時應該有運行機架服務器的機制。不是嗎?

回答

0

您可以使用Capybara.default_port來獲取/設置端口。

+0

是否有可能獲得價值選擇端口,而無需將其配置爲manualy? – Vladimir

+0

是的,即使不配置它,上面的代碼也會返回端口。 –

+0

好吧,它需要檢查原因我已經硬編碼Capybara.server_port = 9876,這就解決了我的問題。 – Vladimir

相關問題