저는 django_facebook을 사용하여 Facebook 상호 작용을하고 Selenium을 사용하여 자동화 된 시스템 테스트를하고 있습니다.페이스 북에서 로그인 Selenium 테스트
self.browser.get(self.live_server_url)
self.browser.find_element_by_xpath('//*[@id="facebook_login_js"]/input').click()
self.browser.switch_to_window(self.browser.window_handles[1])
self.login_to_facebook()
를하지만, 페이스 북의 JS SDK는 비동기 초기화 과정을 완료하지 않았기 때문에 그것은 실패 테스트에서
, 내 응용 프로그램에서 페이스 북에 로그인에 관해서, 나는이 작업을 수행. 과거에 일하는 데 사용 된 테스트가 있었지만 느린 초기화와 같이 현재 변경된 사항이 있는지 알 수 없습니다.
나는 fbAsyncInit을 사용하는 것과 같은 해결책을 생각해 냈지만, 그 코드는 자바 스크립트 파일의 django_facebook에서 제공하고 있으며, 나는 그것을 건드리고 싶지 않다.
로그인 기능을 사용할 수 있도록 Facebook JS SDK가 완전히로드 될 때까지 기다리는 방법을 알고 계십니까?
문제는 SDK가 아직로드되지 않았기 때문에 클릭이 아무것도 발생하지 않는다는 것입니다. "login_to_facebook"메시지는 로그인 양식을 채우기로되어 있습니다. – geekazoid
@geekazoid 글쎄, SDK가 아직'set_timeout()'내부에로드되지 않았기 때문에 당신이 생각하지 않는 모든 것을 넣으십시오. – Ryan
다른 해결책은 두 개의 창이 나타날 때까지 "클릭"하는 것입니다.하지만이 방법이 좋지 않다는 것을 알고 있습니다. 로드 시간이 다를 수 있으므로 잠시 기다려야합니다. "fb-root"div 또는 일부 변경에 대해 생각하고 있었지만 설명서에서 추측 할 수는 없습니다. – geekazoid