Internet Explorer 11의 UI 테스트를 위해 Selenium webdriver를 사용하고 있습니다. 테스트 웹 애플리케이션에서는 여러 화면이 나타납니다. 일부 테스트에서 우리는 세 개의 브라우저 창을 갖게 되었고 따라서 세 개의 Driver.WindowHandles가 생겼습니다. 한 WindowHandle에서 다른 WindowHandle로 전환하려면 Driver.WindowHandles가 가장 오래된 창을 먼저 정렬하고 최신 창을 마지막으로 정렬해야 합니다. 하지만 그렇지 않습니다. 완전히 무작위입니다!
windowhandle은 GUID이기 때문에 WindowHandle GUID를 키로, 값을 브라우저 창에 로드된 페이지 유형에 대한 값으로 사용하여 사전을 생성하게 됩니다. 그러나 이로 인해 창이 닫혀도 사전이 유지됩니다.
이렇게 간단한 일에 많은 노력이 필요한 것 같습니다. 더 나은 해결책이 있습니까?
P粉9869374572023-11-05 16:56:30
당신 말이 옳습니다:
토론에서 Simon은 다음과 같이 분명히 언급했습니다.
그래서 우리는 필요에 따라 WebDriverWait
,然后每次打开新选项卡/窗口时收集窗口句柄,最后迭代窗口句柄和 switchTo().window(newly_opened)
키울 것입니다:
콘솔 출력:
으아악새 탭에서 Open Web Selenium + Python에서 python p> 기반 토론을 찾을 수 있습니다.