Selenium如何操作及关闭新打开的标签页网页?
https://jingyan.baidu.com/article/6c67b1d6b849822787bb1e00.html
软件中如果先打开了一个网页,点击了该网页上的一个链接,新页面以新的标签页打开,当对新标签页操作完毕后,需要关闭新标签页,返回第一个网页,可以发现如果不添加附加代码,操作的是原网页,如果直接使用“driver.close()”命令会关闭第一个网页。下面以python语言作为编程语言,介绍浏览器句柄和标签页的使用方法,介绍如何实现打开新网页后,可以对新网页进行操作,操作完成关闭新打开网页。
15搭建python下selenium驱动google chrome环境
工具/原料
这里驱动Google谷歌浏览器
selenium-3.8.0
chromedriver_win32
https://jingyan.baidu.com/article/fea4511a2a5270f7bb9125dc.html 3.3
方法/步骤
首先输入头文件引用代码,如下图所示,引用软件驱动程序,在编写主程序时首先要添加下图所示代码。
Selenium如何操作及关闭新打开的标签页网页?
接着介绍打开两个网页,如何进行切换。如果打开一个网页后,从该网页点击一个链接打开,该链接网页以新标签页打开,此时添加下图所示第一行代码,可以获得当前两个网页句柄,原网页为句柄0,新网页为句柄1,第二行代码将网页置为句柄为1的新网页,此时可以操作句柄为1的新网页,只要接着下图所示两行代码,编写网页操作代码,都是针对新网页的操作。
Selenium如何操作及关闭新打开的标签页网页?
此时即可操作新网页,如果输入下图所示代码,会关闭新网页,如果没有输入步骤2所示代码,直接输入下图所示命令,则会关闭原网页,而且不能操作新网页,所以需要进行页面句柄切换。
Selenium如何操作及关闭新打开的标签页网页?
而如果是打开多个网页。首先打开网页1,再点击网页1上一个链接,在新窗口打开新网页2,同理点击新网页2上一个链接,新窗口打开新网页3等等,这是按打开顺序为网页编号。实际网页对应句柄如下图所示,即第一个打开网页一直是句柄0,而最新打开的网页记为句柄1,依次序编号。
Selenium如何操作及关闭新打开的标签页网页?
输入下图所示代码,其中i设置为需要操作网页的句柄号,即可对该句柄网页进行操作,最后操作完毕,输入“driver.close()”即可关闭该句柄网页。
Selenium如何操作及关闭新打开的标签页网页?
注意的是只要不输入下图所示代码,重新获得当前所有已打开网页句柄,任何句柄网页关闭后,其他网页句柄号不变,可以直接输入原有句柄进行网页操作。
Selenium如何操作及关闭新打开的标签页网页?
最后,假如打开了6个网页,关闭了其中5个,想保留一个网页进行操作,且该网页句柄为句柄5,此时一定要输入下图所示命令,将当前页面操作置为句柄为5的网页,并不是关闭了其他网页,软件会自动将可操作网页设置为唯一剩下的网页,需要加入代码,指定软件进行切换。
Selenium如何操作及关闭新打开的标签页网页?
END
注意事项
文中介绍的方法,是针对以新标签页打开链接的情况,如果打开网页链接,新网页仍在该标签页,不需要进行句柄切换,直接使用网页前进与后退代码即可。
感谢阅读,可以点赞、投票或收藏支持,谢谢!