2013-10-03 2 views
2

아이폰을 시뮬레이트 할 사용자 에이전트를 사용하여 일부 테스트를 실행하고 싶습니다. 현재 나는 또한 헤드리스 FF, 크롬과 내 테스트를 실행하고이 같은 환경 변수로 정의 된 드라이버가 : 내 테스트를 실행하고 때카피 바라를 사용하는 사용자 에이전트 테스트 작동하지 않음

when 'chrome' 
    Capybara.default_selector = :css 
    Capybara.default_driver = :selenium 
    Capybara.run_server = false 
    Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
    end 

when 'headless' 
    Capybara.default_driver = :poltergeist 
    Capybara.javascript_driver = :poltergeist 
    Capybara.run_server = false 
    Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, {:inspector => true}) 
    end 

그래서 난 그냥 BROWSER = 크롬 또는 BROWSER = 헤드리스와 크롬을 입력합니다 또는 헤드리스가 시작됩니다. 아이폰, 내가 메시지 '랙 테스트는 랙을 필요로 얻을 = BROWSER : 나는 사용자 에이전트를 사용하여 동일한 작업을 수행하고자하는 나는 다음과 같은 시도 : 나는 때 그러나

when 'iphone' 
     Capybara.register_driver :iphone do |app| 
     require 'selenium/webdriver' 
     profile = Selenium::WebDriver::Firefox::Profile.new 
     profile['general.useragent.override'] = "iphone" 
     Capybara::Driver::Selenium.new(app, :profile => profile) 

을이처럼 내 테스트를 실행 (ArgumentError) '가 발생했습니다. 그래서 난과 같이 시작시 기본 드라이버와 자바 스크립트 드라이버를 추가하여이 문제를 해결하는 것을 시도했다 :

 when 'iphone' 
     Capybara.default_selector = :css 
     Capybara.default_driver = :selenium 
     Capybara.run_server = false 
     Capybara.register_driver :iphone do |app| 
     require 'selenium/webdriver' 
     profile = Selenium::WebDriver::Firefox::Profile.new 
     profile['general.useragent.override'] = "iphone" 
     Capybara::Driver::Selenium.new(app, :profile => profile) 

그러나 이것은 단지 시작되었습니다 기본 FF 브라우저에서 발생합니다. 아무도 내가 어떻게이 일을하거나 내가 뭘 잘못하고 있는지 알 수 있습니까? 나는이 기사를 찾았습니다 : http://blog.plataformatec.com.br/2011/03/configuring-user-agents-with-capybara-selenium-webdriver/ 그리고 그것을 따르려고했지만 행운이 없었습니다.

도움을 주시면 대단히 감사하겠습니다.

Capybara.run_server = false 

가 기본 드라이버를 설정하려면 :

답변

2

사용자가 설정해야 서버를 실행하지 않으려면 아이폰 당신은 설정해야합니다

Capybara.default_driver = :iphone 

그래서 전체 설정은 다음과 같습니다

when 'iphone' 
    Capybara.register_driver :iphone do |app| 
    require 'selenium/webdriver' 
    profile = Selenium::WebDriver::Firefox::Profile.new 
    profile['general.useragent.override'] = "iphone" 
    Capybara::Driver::Selenium.new(app, :profile => profile) 
    end 
    Capybara.default_driver = :iphone 
    Capybara.run_server = false 

Firefox w 대신 ios-driver 또는 appium을 사용하는 것이 좋습니다. 전달 된 사용자 에이전트

+0

응답 해 주셔서 감사합니다. Andrey. 그러나 귀하의 제안을 사용하면 오류가 발생했습니다 : 초기화되지 않은 상수 Capybara :: Driver :: Selenium (NameError). 이견있는 사람? ios-driver 또는 appium 사용에 관한 귀하의 제안과 관련하여 현재 우리의 응용 프로그램은 완전히 웹 기반 (네이티브 또는 하이브리드가 아닌)이지만 모바일 장치 브라우저에서 사용하도록 설계되었으므로 사용자 에이전트 테스트가 좋은 옵션 일 수 있다고 생각한 이유는 무엇입니까? – user1523236

+0

@ user1523236 코드에 'capybara'가 필요합니까? –

+0

흥미롭게도 나는 '카피 바라'가 필요하지 않았습니다. 내 env 파일에 추가했지만 여전히 동일한 오류가 발생합니다. :-( – user1523236

관련 문제