2010-01-02 4 views
2

포커스 이벤트 직후에도 어떻게 블러를 발사 할 수 있는지 생각하면 "느슨하게 결합 된"현상이 발생하지 않습니다 (액션이 셀레늄 서버에 하나씩 보내집니다). 설명해 드리겠습니다 :블러와 초점이 모두 단단히 결합 되었습니까?

Selenium RC에서는 fireEvent (locator, "blur") 및 fireEvent (locator, "focus")를 사용하여 흐리게 처리하고 초점을 맞 춥니 다. 그러나 blur 이벤트가 브라우저로 보내지면 focus 이벤트는 javascript 명령 스택의 blur 이벤트를 직접 따르지 않습니다. 다음과 같은 경우에 문제가 발생합니다. 텍스트 상자 그룹과 같은 위젯 그룹의 흐림 감지.

내가하는 일 : 모든 텍스트 상자는 동일한 수신기를 공유하며 흐림이 발생하면 텍스트 상자 중 하나에서 포커스 이벤트를 캡처했는지 확인하는 추가 명령을 간단히 실행합니다. 그렇다면 흐림을 무시합니다. 자바 스크립트에서 실행되는이 추가 명령은 대기중인 모든 명령이 실행 된 후 자동으로 실행됩니다.이 경우 포커스 명령은 이러한 대기중인 명령 중 하나입니다.

Selenium RC로 돌아 가기 : Selenium 서버에서 blur 이벤트를 발생시킨 후 다음 이벤트 (이 경우 포커스 이벤트)를 기다리고 발사합니다. 그러나 이해할 수 있듯이 addiontal 명령이 이미 실행되었고 새로운 포커스 이벤트가 감지되지 않았습니다. 따라서 그룹 흐림이 감지되고 처리됩니다.이 경우 브라우저가 수행 할 것처럼 흐림 이후 포커스가 직접 발생하지 않기 때문에 흐림이 잘못 처리됩니다.

설명하기가 좀 어려워서 제 문제를 이해하십시오. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 그래서 나는 올바른 행동을 테스트 할 수 있습니까? (아무런 유효성 검사도 그룹 블러가 올바르게 캡쳐되지 않았기 때문에 너무 일찍 이루어지지 않습니다.)

나는 이것을 해결할 수 있다고 생각합니다. 평가 될 셀레늄 서버에 자바 스크립트를 보내고 두 이벤트를 발생시킵니다. 서로. 아니면 ... 어떻게 할 수 있니? 내가 당신을 믿지

답변

2

이 찾고있는 사람이됩니다

selenium.getEval ("[여기 내 자바 스크립트]");

브라우저에서 평가할 수 있도록 원하는 javascript 스 니펫을 보낼 수 있습니다. 그러면 포커스를 연결하고 하나의 명령으로 흐리게 처리 할 수 ​​있습니다.

+0

고마워요, 오래 전에이 문제를 해결했습니다. 내가 정확히 기억한다면 당신이 제안한 것과 똑같은 행동을했습니다. – edbras

관련 문제