특정 상황에서 요소를 클릭 할 수 없는지 확인하는 테스트를 작성해야합니다. Selenium Webdriver Java 라이브러리를 사용하고 있습니다.Selenium Webdriver를 사용하여 클릭 할 수없는 요소를 기다리는 방법은 무엇입니까?
나는 WebDriverWait
및 클래스를 사용하여 반대되는 작업을 수행하는 방법을 알고 있습니다.
new WebDriverWait(element, TIMEOUT).until(ExpectedConditions
.elementToBeClickable(By.cssSelector(LOCATOR)));
하지만 반대되는 것을 확인하는 방법을 찾을 수없는 것 같습니다.
나는 WebElement
에 대한 문서를 살펴보고 두 가지 간단한 경우로 문제를 해결했습니다.
요소는 사용할 수 없습니다 -이 경우에는 그냥
WebElement#isEnabled
을 사용할 수 있으며WebDriverWait#until
에 전달 술어에 포장.new WebDriverWait(driver, TIMEOUT).until(new Predicate<WebDriver>(){ public boolean apply(WebDriver driver) { return !getElement().isEnabled(); } });
어떤 경우에는 요소가 클릭 할 때 아무 것도하지 않습니다. 나는 이것을 고려하고 싶다. 문제는 요소가 그 자체로 사용 중지되지 않는다는 것입니다. 그것은 클릭 할 수 있지만 등록 된 이벤트가 없습니다 (일반적으로 하나 있지만 내 경우에는 JavaScript에 의해 제거됩니다).
두 번째 경우에도 여전히 문제가 있습니다. 등록되지 않은 이벤트를 기다릴 수있는 방법이 있습니까?
감사합니다, 나는 이것을 시도 할 것이다. 명백한 캐스트는 조금 의심 스럽지만 아마 제거 될 수 있습니다. 내가 이것에 대해 할 수있는 것을 보겠습니다. 다시 감사합니다, 즐거운 휴일;) – toniedzwiedz
셀레늄에 대한 JS 집행자가 어떻게 작동하는지 잘 알지만, 틀린 것일 수도 있습니다 - 만약 당신이 그것을 없애는 방법을 찾으면 나는 그것을 듣고 기뻐할 것입니다! 그런데이 답변에 행운이 있습니까? –
프론트 엔드가 설정 한 특정 값을 확인하기 위해'JavaScriptExecutor'를 사용했습니다. 감사. – toniedzwiedz