Python+webdriver自动化脚本初学记录之窗口切换(2)
为什么要研究窗口切换?
答:如driver.get("http://www.baidu.com/")打开百度网站,即第一个窗口,该窗口页面上存在可点击的链接,点击这些链接会打开另一个新的窗口,即第二个窗口,这时如果要第二个窗口中操作,就需要先切换到第二个窗口中,就需要用到窗口切换,如果不进行切换,则操作的对象还是上一个页面窗口。浏览器窗口的切换通过句柄(handle)来操作,每个窗口都有一个句柄,代表该窗口,需要操作哪个页面的窗口,切换到窗口对应的句柄。通过driver.switch_to.window(handle)来切换句柄。
下面这个脚本过程是:打开百度网站(第一个窗口),输入“腾讯首页”搜索,搜索结果中点击腾讯首页,弹出新窗口,即腾讯网站首页(第二个窗口),获取所有窗口句柄,切换到第二个窗口句柄,点击NBA,进入NBA 窗口(第三个窗口)。关闭第二个窗口,然后切换到第一个窗口,输入框输入新浪微博,并搜索。最后关闭并退出浏览器。
今天说的是要在第一个窗口和第二个窗口之间切换的一种方式。
1、在出现了第二个窗口后,使用handles=drvier.window_handles获取所有窗口句柄(第一个和第二个)
2、然后driver.switch_to.window(handles[1])切换到第二个窗口句柄 ,切换完点击该窗口中的NBA(此时会弹出第三个窗口),并关闭第二个窗口。
注意:即使弹出第三个窗口,我们要进行操作时指向的对象仍然停留在第二个窗口。所以脚本中driver.close()关闭的是第二个窗口
3、最后driver.switch_to.window(handles[0])切换到第一个窗口句柄,切换完成后进行一系列操作:搜索框输入新浪微博并搜索,然后driver.quit()退出浏览器。