首页 > 技术文章 > selenium——关于alert弹框踩过的坑alert_is_present:报错 __init__() takes 1 positional argument but 2 were given 和报错:TypeError: 'Alert' object is not callable

erchun 2020-05-14 17:07 原文

 

报错1:__init__() takes 1 positional argument but 2 were given

 

 

 原因:进入源码可以看到,alert_is_present是一个class类,因此调用的时候要加上括号alert_is_present()

 

 

 

报错2:TypeError: 'Alert' object is not callable

解决方法:

 

正确写法:

    def accept_alert(self):
        """确认弹框"""
        try:
            WebDriverWait(self.driver, self.max_wait_time).until(EC.alert_is_present())
            alert = self.driver.switch_to.alert
            alert.accept()
        except Exception as e:
            raise e

 

推荐阅读