python+selenium自动化- 网页frame与多窗口处理
问题:
1.针对多窗口切换处理
1)点击某些链接,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了。
2)获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个页面灵活操作了。
多窗口处理流程
1)先获取到当前的窗口句柄(self.driver.current_window_handle)
2)再获取到所有窗口句柄(self.driver.window_handles)
3)判断是否是想要操作的窗口,如果是,就可以对窗口进行操作,如果不是,跳转到另外一个窗口,对另外一个窗口进行操作(self.driver.switch_to.window(windows[-1]))
多窗口切换案例
具体代码实现:红框中先打立即注册之前的窗口名字,点击立即注册之后,再次打印当前窗口,以及所有窗口,发现多了一个窗口,没有定位到的原因就是,已经换了窗口,但是你的代码还在当前窗口去定位元素呢,因此要切换到该窗口,所有窗口是一个列表形式,因此将列表中最后一个值传给要切换的窗口。
类似于这种:
红框中的两种表达方式都是一样的,可以记住!