首页 新闻 会员 周边 捐助

python lambda表达式没看懂,请教解析

0
[待解决问题]

学习python视频看到lambda表达式没看懂, 目的是将查找的多个元素进行显示等待查找。问问 以下len>0 的具体怎么执行的? 为什么要有这个len,去掉不可以吗?
1、判断如果是一个字典,进入if体内
2、将变量的第一个self.driver.find_element(By.ID, locate)传给X并执行wt.unitl进行显示等待
3、将变量的最后一个self.driver.find_element(By.ID, locate)传给X并执行wt.unitl进行显示等待
4、判断 len>0 , 为false的时候内部是怎么走的? 直接退出if?

def wait(self, locate, timeout=20):
    wt = WebDriverWait(self.driver, timeout)
    if isinstance(locate, tuple):
        wt.until(lambda x: len(self.driver.find_element(By.ID, *locate)) > 0)
哥哥巫的主页 哥哥巫 | 菜鸟二级 | 园豆:202
提问于:2020-04-18 13:43
< >
分享
所有回答(1)
0

wt.until的参数为一个lambda表达式,结果为boolean类型,即等待10s直到满足某一个条件。这个条件就是你查找的元素个数大于0。
你的问题,去掉len可以吗?这个条件是根据你的需要来的,你改成什么都可以,前提是满足业务需求。

如果条件一直不满足,等到超时时间到了,就会抛出Timeout的异常。这种可预知的情况应该catch住再进一步处理。

。淑女范erり | 园豆:961 (小虾三级) | 2020-04-22 09:51

明白了感谢

支持(0) 反对(0) 哥哥巫 | 园豆:202 (菜鸟二级) | 2020-04-25 20:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册