用selenium操作网页时,发现点击了一个按钮准备进入下一页,结果,突然弹出了一个新标签或者对话框,现有的driver都操作不了,怎么办呢?
1.新的标签页
出现新的标签页的时候,我尝试着拿webdriver,get了一下新的url地址,发现旧的标签页报错,新的标签页操作不了
这时候就该用.switch_to.window([i]) 。(switch_to_window已经被抛弃了,在pycharm中打出来,会被一到中划线狠狠拒绝。
其中i是窗口的序号(handle,句柄)。原来的窗口是0,新的窗口是1.如果多了呢?下面是百度给予的解释:
而如果是打开多个网页。首先打开网页1,再点击网页1上一个链接,在新窗口打开新网页2,同理点击新网页2上一个链接,新窗口打开新网页3等等,这是按打开顺序为网页编号。实际网页对应句柄如下图所示,即第一个打开网页一直是句柄0,而最新打开的网页记为句柄1,依次序编号。
获取driver之后,剩下的就跟往常一样开始操作吧
2.alert(警告框,对话框)
(图是从这位仁兄的博客中拽的,https://blog.csdn.net/real_tino/article/details/59068827)对,就是这个,获取到他的driver很简单,driver.switch_to.alert,就可以,注意,这里alert后面没有跟括号。获取driver后我就想着按往常一样,定位“确定”这个按钮,结果发现what?ctrl+shift+c不好使,一点在那个确定上,他就。。。真的。。。确定了!!!,那怎么办呢?没关系,方法已经都写好了,如下所示,
.accept() 确认
.dismiss() 取消(我碰到的没有取消这个,没错只能同意)
.send_keys() 输入内容(如果有的话)
果然,因为操作太简单,也就不给各位大神发挥的空间了。
最后求关注,求点赞,欢迎大家关注我的公众号
记录所学所用,包括但不限于遥感、地信、气象、生态环境,机器学习知识,相关文献阅读,编程代码实现。偶尔荒腔走板的聊聊其他。欢迎不同领域的朋友们加入进来,多多交流。