测试人社区

当使用测试步骤的数据驱动后,有些步骤需要针对性的使用显示等待该怎么办?

yaml文件解析步骤如下:

def steps(self, path):
        with open(path, encoding="utf-8") as f:
            steps = yaml.safe_load(f)
        for step in steps:
            if "action" in step.keys():
                action = step["action"]
                if "click" == action:
                    self.find(step["by"], step["locator"]).click()
                if "send" == action:
                    self.find(step["by"], step["locator"]).send_keys(step["value"])

使用测试步骤的数据驱动后,相当于把所有步骤全部放在一个黑盒里,这个黑盒里的所有步骤都按统一的设定来执行,但是很多时候,某些步骤会需要特定的显示等待才能定位到元素,那这时候该怎么解决呢?

一般来说,显示等待可以封装到find的逻辑里面去的;
如果你需要强等待的话,可以添加步骤的解析sleep

可以封装,但是怎么针对性的封装呢,毕竟每个元素定位的等待条件不一定一样啊

你可以进行一个统一的封装啊

毕竟每个元素定位的等待条件不一定一样啊

这个没啥不一样啊,你可以用显示等待元素出现和能够被点击啊,还有啥等待条件?你举例来说说看

我意思是说,假如我一个case有3个步骤,
步骤1需要可点击,
步骤2需要可见,
那么步骤1、步骤2都是通过封装的yaml解析,然后传入到你封装的find方法中,但是你find方法里怎么根据每个测试步骤它需要的等待方式来进行选择?
即怎么对步骤1采用可点击显示等待,步骤2采用可见显示等待?

如果需要比较细致和特别的显式等待的话 你可以新加action,然后把显式等待单独写成一个step就可以了

醍醐灌顶,谢谢!