경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
편집을 되돌릴 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 |
당신의 편집 |
21번째 줄: |
21번째 줄: |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | == WebDriver == | + | == Selenium Grid == |
− | | |
− | === Trouble shooting ===
| |
− | | |
− | ==== Errors ====
| |
− | | |
− | ===== Understanding Common Errors =====
| |
− | | |
− | ====== Stale Element Reference Exception ======
| |
− | 웹 요소의 참조가 유효하지 않은 경우에 발생하는 예외입니다.
| |
− | | |
− | Common Causes
| |
− | | |
− | 페이지가 새로고침되거나 동적으로 변경되거나, 다른 페이지로 이동하거나, 다른 창이나 프레임이나 아이프레임으로 전환되는 경우에 발생할 수 있습니다.
| |
− | | |
− | Common Solutions
| |
− | | |
− | * '''DOM이 변경된 경우''': 페이지가 새로고침되거나 요소가 이동된 경우, 원하는 셀렉터를 가진 요소가 여전히 페이지에 존재하지만, 기존에 사용하던 요소 객체로는 접근할 수 없게 됩니다. 이 경우에는 요소를 다시 탐색해야 합니다. 이는 다음과 같은 두 가지 방법으로 할 수 있습니다:
| |
− | ** '''웹 요소를 다른 객체로 감싸기''': 웹 요소를 셀렉터를 저장하고 셀레니움 요소를 캐시하는 다른 객체로 감쌉니다. 이 감싼 객체로 작업을 수행할 때, 이전에 탐색했던 캐시된 객체를 사용하려고 하고, 만약 요소가 오래되었다면 예외를 잡아서 저장된 셀렉터로 요소를 다시 탐색하고, 메소드를 다시 시도합니다. 이 방법은 효율적이지만, 페이지가 변경된 후에 사용하는 셀렉터가 다른 요소를 참조하게 되어 원하는 요소가 아닌 경우 문제가 발생할 수 있습니다.
| |
− | ** '''요소 객체를 특정 컨텍스트에 저장하기''': 요소 객체는 주어진 컨텍스트에 저장되므로, 다른 컨텍스트로 이동하면 요소 참조는 여전히 유효하지만 일시적으로 접근할 수 없게 됩니다. 이 경우에는 요소를 다시 탐색해도 도움이 되지 않습니다. 왜냐하면 현재 컨텍스트에는 요소가 존재하지 않기 때문입니다. 이 문제를 해결하려면, 요소를 사용하기 전에 올바른 컨텍스트로 다시 전환해야 합니다2.
| |
− | * '''다른 페이지로 이동한 경우''': 단순히 컨텍스트를 변경한 것이 아니라 다른 페이지로 이동하여 요소가 위치한 컨텍스트를 파괴한 경우입니다. 이 경우에는 현재 컨텍스트에서 요소를 다시 탐색할 수 없고, 유효한 컨텍스트로 다시 전환할 수도 없습니다. 이런 이유로 오류가 발생한 경우, 올바른 위치로 다시 이동하고 요소를 다시 탐색해야 합니다.
| |
− | | |
− | == Grid ==
| |
| https://www.selenium.dev/documentation/grid/getting_started/ | | https://www.selenium.dev/documentation/grid/getting_started/ |
| | | |