我正在模拟与 Selenium 的用户交互,例如,我基本上在导航模式上单击了 3 次。在每个窗口,我都在映射它window_handle并且我意识到,它current_window_handle总是返回相同的标识符,并且window_handles总是具有相同的大小,而不是拥有一个窗口对象列表。因此,我不能从window_3to切换window_1,因为current_window_handle总是一样的......这是一个示例,用于演示问题(单击链接的代码被禁止,以便将问题集中在我遇到问题的代码上):# click on a link, wait and get window handlewindow_1 = browser.current_window_handleprint(window_1)print(browser.window_handles)print(browser.session_id)browser.implicitly_wait(3)# click on a link, wait and get window handlewindow_2 = browser.current_window_handleprint(window_2)print(browser.window_handles)print(browser.session_id)browser.implicitly_wait(3)# click on a link, wait and get window handlewindow_3 = browser.current_window_handleprint(window_3)print(browser.window_handles)print(browser.session_id)结果:CDwindow-18D629A1BFC3391C5AE352F02768EFA3['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']c50563aa58c1565d8c82ead6653e65a4CDwindow-18D629A1BFC3391C5AE352F02768EFA3['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']c50563aa58c1565d8c82ead6653e65a4CDwindow-18D629A1BFC3391C5AE352F02768EFA3['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']c50563aa58c1565d8c82ead6653e65a4根据 Selenium API Doc:– current_window_handle用法:driver.current_window_handle– 窗口句柄返回当前会话中所有窗口的句柄。用法:driver.window_handles如您所见,会话 ID 始终相同。在这种情况下可能会出现什么问题?
1 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞
如果您查看它的输出,print(browser.window_handles)
它总是与只有一个列表项相同。
['CDwindow-18D629A1BFC3391C5AE352F02768EFA3']
这表明链接正在加载/刷新同一窗口中的数据。因此,您不必切换到任何其他选项卡。
每当您看到新窗口/选项卡打开时,您始终可以在对新窗口执行操作之前切换到新窗口。
切换到最新窗口:
driver.switch_to.window(driver.window_handles[-1])
添加回答
举报
0/150
提交
取消