Я моделирую взаимодействие пользователя с Selenium, где у меня есть, например, 3 щелчка по навигационной схеме.
В каждом окне я отображаю его window_handle
, и я понял, что current_window_handle
всегда возвращает один и тот же идентификатор, а window_handles
всегда имеет один и тот же размер, вместо того, чтобы иметь список объектов окна.
Поэтому я не могу переключиться с window_3
на window_1
, потому что current_window_handle
всегда одно и то же ...
Вот пример для демонстрации проблемы (код, который нажимает на ссылки, был подавлен, чтобы сфокусировать вопрос на коде, с которым у меня возникли проблемы):
# click on a link, wait and get window handle
window_1 = browser.current_window_handle
print(window_1)
print(browser.window_handles)
print(browser.session_id)
browser.implicitly_wait(3)
# click on a link, wait and get window handle
window_2 = browser.current_window_handle
print(window_2)
print(browser.window_handles)
print(browser.session_id)
browser.implicitly_wait(3)
# click on a link, wait and get window handle
window_3 = browser.current_window_handle
print(window_3)
print(browser.window_handles)
print(browser.session_id)
И результат:
CDwindow-18D629A1BFC3391C5AE352F02768EFA3
['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']
c50563aa58c1565d8c82ead6653e65a4
CDwindow-18D629A1BFC3391C5AE352F02768EFA3
['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']
c50563aa58c1565d8c82ead6653e65a4
CDwindow-18D629A1BFC3391C5AE352F02768EFA3
['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']
c50563aa58c1565d8c82ead6653e65a4
Согласно документу Selenium API:
- current_window_handle
Использование: driver.current_window_handle
- дескрипторы окон
Возвращает дескрипторы всех окон в текущем сеансе.
Использование: driver.window_handles
Как видите, идентификатор сессии всегда один и тот же.
Что может быть неправильным в этой ситуации?