2013-12-18 10 views
1

합리적으로 복잡한 웹 응용 프로그램을 테스트하고 있습니다. 셀렌이 화면에 단추가 나타나는 지점까지 물건을 가져올 수 있습니다.Selenium IDE는 버튼이 활성화 될 때까지 대기합니다.

셀렌이 나타나면 해당 버튼을 클릭하기를 원합니다. 그러나 waitForElementPresent를 사용하는 것만으로는 충분하지 않습니다. 왜냐하면 버튼이 나타나면 초 단위로 비활성화되기 때문입니다.

버튼을 클릭하기 전에 실제로 클릭 대기 상태가되도록 셀레늄이 필요합니다.

IDE에서 가능한지 알기 위해 노력하고 있습니다.

어떤 도움을 주셔서 감사합니다!
재 반복 할 가치가 있습니다. 지금은 IDE 만 사용하고 있습니다. 지금은 ....

답변

3

나는 정말로 당신이 webdriver 'proper'를 사용하여 IDE를 통해 복잡한 응용 프로그램을 자동화하는 것이 결국 엉망이되는 원인이 될 것이라고 생각합니다. 그러나 그것은 당신의 질문이 아니며 나는 충분히 설교를했다. ...

당신은 waitForElementPresent에서 waitForVisible로 변경하는 것이 가능하다.

다음으로 가장 간단한 변경은 스크립트에 대기 코드를 하드 코딩하는 것입니다. 하드 코드 대기는 일반적으로 좋지 않은 연습이지만이 작업이 빠르고 간단하지 않은 경우 빠져 나갈 수 있습니다. 일시 중지 명령 (밀리 초 단위가 아니라 시간이 걸린다는 것을 기억하십시오).

마지막 옵션은 평가할 자바 스크립트를 가져 오는 고급 기능인 waitForCondition을 사용하는 것입니다.이 기능을 사용하면 문제의 요소에 대한 추가 검사를 수행 할 수 있습니다.이 기능을 사용하면 클릭 준비가 된 것으로 확인 된 속성을 확인할 수 있습니다 .

1

waitForVisible 명령이 있음을 확인했습니다. 시도해 볼 수도 있습니다. DOM이 요소 (waitForElementPresent)를로드 할 때까지 기다렸다가 실제로로드 된 요소 (waitForVisible)가 서로 다른 두 가지 일 수 있습니다.

+0

내 주요 목표는 버튼이 표시되고 활성화되도록 (클릭 가능)있을 때까지 기다리는 것이지만 확실히 시도하고 도움이되는지 확인합니다. – user1445967

5

Selenium IDE에서도 동일한 문제가있었습니다. 나는 Selenium에서 ExpectedConditions.elementToBeClickable 메소드와 동등한 것을 찾고 있었다.

Selenium IDE를 사용하면 disabled 속성을 사용하여 비활성화 된 양식 제출 입력을 테스트하는 데 다음이 작동하는 것 같습니다. YMMV. 필요에 따라 적응.

click/clickAndWait/submit/submitAndWait 명령 전에이 셀레늄 IDE 명령을 추가

Command: waitForCssCount 
    Target: #submit-button[disabled="disabled"] 
    Value: 0 

이 CSS 선택기는 '장애인'으로 설정된 disabled 속성이 ID submit-button 인 요소와 일치합니다. 이 명령은 0 번 발생 (즉, 버튼이 더 이상 비활성화되지 않을 때) 할 때까지 대기합니다.

CSS 선택기 대신 Xpath 표현식을 사용하려는 경우 waitForXpathCount 명령을 사용할 수도 있습니다.

참고 : 테스트하는 동안 Selenium IDE가 약간 희박 해졌으며이 waitForCssCount로도 안정적으로 대기하지는 않습니다. YMMV.

1

그냥 waitForElementNotPresent를 사용하고 버튼 CSS에 disabled 속성을 부여 할 수 있습니다.disabled 속성이 없으면 버튼이 활성화되어 있으므로 코드가 있습니다. 여기

내가 셀레늄 IDE에 사용되는 예는 다음과 같습니다

Command | Target | Value waitForElementNotPresent | css= input[disabled=""]|

귀하의 CSS는 상태로 = 비활성화 "비활성화"있는 같이, 코드 다를 수 있지만 원칙은 동일하게 유지됩니다.

관련 문제