UI自动化 - 如何判断一个页面上元素是否存在?

问题

在做 UI 自动化时,使用 UI 自动化测试工具进行自动化测试,如何判断一个页面上元素是否存在?

有没有做过 UI 自动化测试,如何判断元素在页面上是否存在?

考察点

面试官想了解:

  • 是否真的做过 UI 自动化测试

  • 在做测试的时候遇到元素难定位的问题如何解决,如何判断元素在页面上是否存在?是否有自己的思考与总结

  • 是否了解显式等待的用法

  • 是否了解find_elements()的用法

技术点

涉及的技术点:

  • 通过异常处理来判断元素是否存在

  • 通过查找元素列表find_elements() 判断元素是否存在

  • 显式等待

回答

  • 方法一:通过异常处理来判断元素是否存在,可以使用 try…except… f 未找到元素的时候捕获这个异常

  • 方法二:通过查找元素列表find_elements() 判断元素是否存在,定义一个方法,如果元素列表大于 0 则元素存在,返回 True, 如果元素列表等于 0 则元素不存在,返回 False

  • 方法三:显式等待,结合 WebDriverWait 和 expected_conditions 判断(推荐)