2014-02-20 2 views
1

문제 :여러 프로세스의 여러 iFrames?

  • 내가 한 iframe에 실행하는 데 필요한 여러 프로세스를 가지고 있고, 나는 동시에 다른 사람에 있지만 다른 iframe에 실행하는 데 필요한 다른 프로세스가 있습니다. driver.switch_to_frame("frame1")을 사용하면 frame2의 프로세스가 중단됩니다.

시도 솔루션 :

  • 내가 frame1의 프로세스가 frame2에서 프로세스를 시작하고 계속하기 전에 끝날 때까지 기다려야합니다. 나는 프로세스가 시간에 민감하기 때문에 이것이 맘에 들지 않는다. 이것은 또한> 2 iFrames로 쉽게 확장 할 수 없습니다.

내가 물어 보려는 것은 은 드라이버가 동시에 여러 개의 iFrames에 집중할 수있는 우아한 방법입니까? 저는 파이썬을 사용하고 있습니다. 그러나 다른 언어로 된 솔루션을 가지고 있다면 기꺼이 배울 것입니다.

+1

. 'switch_to_default_content()'를 실행 한 다음 모니터 할 프레임으로 조건이 발생할 때까지 대기 한 다음 다른 프레임으로 다시 전환하십시오. 이 문제를 해결하기위한 유일한 제안은 자바 스크립트 실행 프로그램을 사용하여 페이지를 모니터링하는 것입니다. – Richard

+0

와우, 나는 그런 식으로 자바 스크립트를 실행할 수 있다는 것을 몰랐다는 말을 약간 당혹 스럽다. 나는 그것이 내가 원했던 것보다 훨씬 좋은 해결책이라고 생각한다. (사이드 노트 : 지금 당장 질문을 열어 두지 만, 이것을 해결할 수 있다면 그것을 해결 한 것으로 기억할 것입니다.) – Jake

답변

0

리차드의 조언에 따라 나는 마침내 Selenium의 JS 실행 프로그램을 사용하여이 문제를 해결했다. 나는 기본적으로 this answer에서 제안 된 것을했다. 하나 개의 프로세스에서

,

command = "window.frames['IFrame1'].document.getElementById('elementInFrame1')" 
driver.execute_script(command) 

그리고 다른 프로세스에서 같은 일을, 내가 거기에 생각하지 않습니다

command = "window.frames['IFrame2'].document.getElementById('elementInFrame2')" 
driver.execute_script(command) 
관련 문제