描述:通常我们selenium元素的时间经常遇到只要跳转页面了,定位就总是找不到我要找的元素,这是因为的你定位指针driver没有指向第二个页面,所以无法定位。知道原因后哪怎么来切换定位窗口呢,很简历。
通过下面语句可获取当前指定的窗口handle name,但是这里很多学者会觉得他获取的就是第二个页面的handle name,从页面显示可得知,其实错了,我也犯过这些的错。我们需要获取driver会话中的所有窗口的handle name,然后在列表中通过遍历切换想要指定的窗口就行了
current_window = driver.current_window_handle # 获取当前窗口handle name
多页面产生后,通过遍历切换所要切换的窗口
all_window=driver.window_handles # 返回当前会话中所有窗口的句柄。
print("all_window:: ",all_window) # 打印当前所有窗口的句柄 name
for window in all_window: #通过遍历判断要切换的窗口
print("window:: ",window)
if window != current_window:
driver.switch_to.window(window) # 将定位焦点切换到指定的窗口,包含所有可切换焦点的选项
current_window = driver.current_window_handle # 获取当前窗口handle name
举例: