pythonselenium系列(六)实战技巧之弹框处理-创新互联

一 前言

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、成都网站设计、内蒙古网络推广、微信小程序、内蒙古网络营销、内蒙古企业策划、内蒙古品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联为所有大学生创业者提供内蒙古建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

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

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

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

三 处理方法

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。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:pythonselenium系列(六)实战技巧之弹框处理-创新互联
文章转载:http://ybzwz.com/article/depdcc.html