测试人社区

UI自动化输入一个卡号的时候,有时候会提示“生产卡编码不存在”的异常情况,提示了之后我要继续输入别的卡号,如果不提示,就继续进行下一步操作

自动化输入一个卡号的时候,有时候会提示“生产卡编码不存在”,提示了之后我要继续输入别的卡号,如果不提示,就继续进行下一步。但是我这样写有问题,在定位的时候找不到生产卡编码不存在的元素会直接报错,求大神帮解决最好能贴代码,谢谢啦

        card_does_not_exist = self.find(By.XPATH, "//*[@text='生产卡编码不存在']").text
        if card_does_not_exist is not None:
            if card_does_not_exist == "生产卡编码不存在":
                self.production_card_number_double()
        else:
            pass
        return self

帖子要发在对应班级的答疑区哈

可以用finds去找,判断返回列表的长度,找到元素的话,长度不为0,找不到的话,长度为0

您说的是黑名单操作嘛,能具体贴一下代码吗

不是黑名单,是用 driver.find_elements()查找元素,这个api会返回一个列表,比如元素有2个,返回一个列表;如果元素不存在,会返回一个空列表,你去判断列表长度,等于0的话,就是元素不存在,否则就是存在

就你贴出来的这段代码逻辑里面,只判断了找到的情况,没有任何else找不到的情况下要做什么,那按照源码规定,肯定是会抛出elementnotfound异常的,肯定就报错了,你要去把这部分逻辑补全才行