저는 셀레늄을 사용하여 소프트웨어를 자동화하고 있으며 프레임 내부에 클릭해야 하는 웹 요소가 있습니다.
나는 다음과 같은 방법을 시도했다. ExpectCondtion 클래스를 사용하여. 간단한 셀레늄 click() 메소드를 사용하여 thread.sleep()을 사용합니다. javascriptExecutor를 사용하여.
하지만 작동하지 않습니다.
그것을 해결할 다른 방법이 있습니까?
답변1
우선 당신이해야 할 일스위치~로아이프레임요소가 어디에 있는지, 그렇지 않으면 Selenium은 다음과 같은 요소를 찾을 수 없습니다.
driver.switchTo().frame("your frame name or ID");
둘째, 올바른 방법을 사용하고 있는지 확인해야 합니다.위치 전략로케이터가 올바른지 확인하세요. 클릭이 다른 요소(상위 또는 쿠키 팝업 등)에 의해 차단될 수 있으므로 오류 메시지/로그에 주의하세요.
셋째, 사용을 고려하십시오.WebDriver잠깐만요구현하기 위한 클래스명시적 대기요소가 로드되는 경우일 수 있으므로비동기적으로그리고 즉시 이용 가능하지 않음
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
참고자료: