Leo小菜逼 2023-05-31 16:32 采纳率: 44.4%
浏览 17
已结题

关于appium的显式等待

最近学习appium的显示等待,觉得有点难,一直云里雾里的感觉,尤其是对untill的用法,比如这段代码:

    def JXB(self):
        try:
                driver = webdriver.Remote('http://localhost:4723/wd/hub', camera_Tuya_app)
                # print('开启机械臂app')
                time.sleep(6)
                WebDriverWait(driver, 30, 0.5).until_not(lambda el2: driver.find_element(By.ID, "iv_ble_offline"))  #until_not 返回结果为false
                driver.find_element(By.XPATH,"//*[@content-desc='ty_home_device_name']").click()
                WebDriverWait(driver, 30, 0.5).until(lambda el2: driver.find_element(By.XPATH, acc))
                driver.find_element(By.XPATH,acc).click()
                keys_time =time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                print('按门铃成功'+keys_time)
                keys_time_l.append(keys_time)
            # time.sleep(30)
        except:
            print('可控崩溃,5s重新开启')
            time.sleep(5)
            return self.JXB()

其中的WebDriverWait(driver, 30, 0.5).until(lambda el2: driver.find_element(By.XPATH, acc))里面的 el2 是随便写的吗?在代码中找不到,又不知道代表啥?看了几个帖子写的都不同,特此请教~

  • 写回答

2条回答 默认 最新

  • GavinHaydy 2023-05-31 16:58
    关注

    appium是继承的selenium 多看下selenium文档
    首先你看until接收的第一个参数是method==方法也就是函数
    所以这里用了匿名函数lambda
    匿名函数格式 lambda 参数 : 返回值
    所以 until里面返回的是个函数 driver.find_element(By.XPATH, acc) 符合要求
    el2是匿名函数的参数,这里返回值不需要他 所以随便写

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵