0

어떤 시점에서 다른 페이지로 이동하는 테스트를 작성하고 있습니다. 페이지의 첫 번째 것은 메시지로 스팬을 팝업하는 자바 스크립트를 실행하는 것입니다. 몇 초 후에, 그 기간은 사라질 것입니다.다른 요소가 그것을 덮을 때 요소를 클릭 할 수 없습니다.

범위 아래로 이동할 링크를 클릭하려고하는데 chromedriver가 허용하지 않는 것 같습니다.

System.InvalidOperationException: unknown error: Element is not clickable at point (165, 177). Other element would receive the click: ...

이것은 실제로 예상되는 동작이며 약간 인상적입니다.

스팬이 사라질 때까지 기다리지 않고 링크를 클릭 할 수 있습니까?

답변

1

난 당신이 "스마트"윈도우가 사라진 것을 확인할 것이다 기다리 사용하는 것이 좋습니다 것입니다. WebDriverWaitExpectedConditions을 사용하여 구현되었습니다. 자바

예 :

WebDriverWait wait = new WebDriverWait(driver, 10); //timeout after 10 seconds 
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.ByCssSelector("CSS_POP_UP_SELECTOR"))); 

또는, 당신은 눈에 보이는 요소를 확인하기 위해 다음과 같은 스크립트를 사용하려고 할 수 있습니다

JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("document.getElementById('BUTTON_ELEMENT_ID').style.display='none';");

: 메시지를 시도하고 숨길,

JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("document.getElementById('BUTTON_ELEMENT_ID').style.display='block';");

또는

'표시'대신 '표시/숨김'이 표시 될 때 요소의 크기를 유지하려면 '표시' ity :

document.getElementById('BUTTON_ELEMENT_ID').style.visibility = 'hidden'; 
document.getElementById('BUTTON_ELEMENT_ID').style.visibility = 'visible'; 
+0

감사합니다. 그러나 가능한 한 빨리 테스트를 실행해야합니다. –

+0

좋아, 나는 요소를 사라지게하는 방법에 대한 자세한 설명과 함께 대답을 편집/나타납니다. – Stas

+0

코드를 보내 주셔서 감사합니다! –

관련 문제