webDriver JavaScript 클릭 문제!
나는 이것을 여러 번 들었고 솔직히 말해서 클릭이 작동하도록 하는 유일한 방법인 극단적인 경우가 있습니다. 그러나 나는 개인적으로 그 접근 방식을 최신 소스로 사용하려고 노력하며 여기에 그 이유가 있습니다.
이야기
오늘 고객으로부터 메시지를 받았습니다. '마케팅에서 페이지에 새 구성 요소를 저장할 수 없습니다. 저장 버튼이 없다고 합니다.'
그래서 자동 테스트를 확인하기 위해 이메일을 열었고 모두 통과했습니다. 100% 성공. 이 시점에서 나는 그것이 시스템의 결함일 가능성이 가장 높다고 생각하기 시작했습니다. 그래서 수동으로 테스트를 시작했고
save icon
참으로 실종되었습니다.그런데.. 내 테스트에서 이 문제를 찾지 못한 이유는 무엇입니까? 이것은 모든 테스트가 통과하는 흐름입니다. 즉, 수백 번 실패해야 했습니다.
그래서 코드를 열어보니.. 바로 문제를 발견했습니다...
...
seleniumHelper.clickElementJavaScriptExecutor(checkIcon);
...
public void clickElementJavaScriptExecutor(WebElement element){
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
}
...
이것은 버그가 100% 테스트 사례 증거인 경우, 즉 다른 말로 쓸모없는 테스트를 한 경우 중 하나입니다.
설명
이 특정 사례의 경우 요소가 페이지에 존재합니다.
그러나 그것은 숨겨져 있었고 일반 고객과 아무 의미가 없는 자바 스크립트에는 표시되지 않았습니다. 스크립트는 클릭 이벤트 바인딩을 트리거하고 요소가 존재하는 한 계속 진행합니다.
이로 인해 자동화된 흐름이 오류 없이 완료되었고 테스트 사례는 실제 고객 문제를 노출하지 않았습니다. 정상적인 클릭을 위해 javascript 클릭을 변경한 후 모든 테스트가 예상대로 실패하기 시작했습니다.
checkIcon.click();
WebDriver error. Failed Authoring: Component: phonenumber
Failure Reason: org.openqa.selenium.ElementNotInteractableException: element not interactable
.엔딩 노트
스크립트의 모든 단일 작업은 유효성 검사로 작동해야 합니다. 클릭, 입력, 선택.. 그 중 하나가 실패하면 웹 사이트에서 문제가 발생합니다. 이것은 테스트를 보다 안정적으로 만들고 오탐을 방지하는 데 도움이 되는 지속적인 유효성 검사 접근 방식입니다. (내 이야기처럼).
따라서 요소를 클릭하기 위해 javascript를 사용하는 것이 때때로 좋은 생각입니다. 예를 들어 일반적인 웹 드라이버 클릭이 작동하지 않는 것처럼 보이거나 구성 요소를 서로 위에 배치하는 매우 구체적인 UI가 있고 클릭 영역이 매우 작은 경우입니다.
그러나 실제 사용자 흐름이 아니기 때문에 피해야 합니다.
코멘트?
건배 :) 그리고 webdriver를 계속 사용하는 것을 기억하십시오
https://pjcalvo.github.com
게시물이 마음에 든다면:
Reference
이 문제에 관하여(webDriver JavaScript 클릭 문제!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pjcalvo/problems-with-webdriver-javascript-clicking-4hjb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)