webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的元素。
要想在多个窗口之间切换,首先要获得每一个窗口的唯一标识符号(句柄)。通过获得的句柄来区别分不同的窗口,从而对不同窗口上的元素进行操作。
示例:打开hao123网站,再打开新窗口苏宁抢购
执行结果:
在本例中所有用到的新方法:
current_window_handle
获得当前窗口句柄
window_handles
返回的所有窗口的句柄到当前会话
switch_to.window()
用于处理多窗口操作的方法,与我们前面学过的 switch_to.frame() 是类似,switch_to.window()用于 处理多窗口之前切换,switch_to.frame() 用于处理多框架的切换。
实操:访问百度,使用new_window_is_opened(handles)判断是否打开了新的窗口,在这之前需要获取句柄总个数
方法1:
方法2:
方法1比2性能会好一些,对于复杂的系统