温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python selenium系列(六)实战技巧之弹框处理

发布时间:2020-07-22 13:52:02 来源:网络 阅读:2187 作者:平山 栏目:编程语言

前言

 

在页面操作中,可能会出现一些非预期的弹框,就拿最简单的登录场景来说,在登录成功后进入页面前,可能弹出某类提示信息的窗体,这类窗体的共性是:非必然出现。也就是说,当你登录系统的外部条件满足时,不会出现;否则出现,且阻止了页面的加载。针对该类问题,本文介绍一个小技巧来处理此类或有或无的窗体弹框。

 

为什么需要处理或有或无的弹框

在脚本开发中,我们重视脚本的稳定性,除了系统页面发生更改导致脚本必须修正外,其他的外界因素,如此类或有或无的弹框,就可能后续导致脚本的运行失败,所以,脚本应该尽力将潜在的问题处理掉,否则,随着自动化覆盖面的扩大,后期脚本维护会成为严重的技术债。另外,脚本不稳定的自动化基本是在走过场,既不能有效实现回归的目的,也可能摧毁团队对自动化的信心。在此,我们不讨论后期影响,只关注这种场景的处理方法。

 

处理方法

Selenium是考虑到此类场景的,所以提供了相当周到的处理方法。

核心代码如下:

from selenium.webdriver.support import expected_conditions as EC

#判断弹框是否出现,如果出现则点击取消,否则无须处理
result = EC.alert_is_present()(browser) # 如果存在 返回alter对象,否则返回false, 源码
if result:
    print(result.text)
    result.dismiss()
else:
    pass


上面代码,如果没有弹框,脚本正常执行;否则,执行弹框的dismiss()方法,取消弹框,当然也可能是调用弹框的accept()方法,确认弹框,根据实际情况定吧。


四 其他资源

关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI