如何判断一个元素是否存在,如何判断 alert 弹窗出来了,如何判断动态的元素等等一系列的判断,在 selenium 的 expected_conditions 模
块收集了一系列的场景判断方法,这些方法是逢面试必考的!!!
expected_conditions 通常也简称 EC,本篇先介绍下有哪些功能,后续更新中会单个去介绍。python
title_is: 判断当前页面的 title 是否彻底等于(==)预期字符串,返回布尔值
title_contains : 判断当前页面的 title 是否包含预期字符串,返回布尔值
presence_of_element_located : 判断某个元素是否被加到了 dom 树里,并不表明该元素必定可见
visibility_of_element_located : 判断某个元素是否可见. 可见表明元素非隐藏,而且元素的宽和高都不等于 0
visibility_of : 跟上面的方法作同样的事情,只是上面的方法要传入 locator,这个方法直接传定位到的 element 就行了
presence_of_all_elements_located : 判断是否至少有 1 个元素存在于 dom 树中。举个例子,若是页面上有 n 个元素的 class 都是'column-md-3',那么只要有 1 个元素存在,这个方法就返回 True
text_to_be_present_in_element : 判断某个元素中的 text 是否 包含 了预期的字符串
text_to_be_present_in_element_value : 判断某个元素中的 value 属性是否包含 了预期的字符串
frame_to_be_available_and_switch_to_it : 判断该 frame 是否能够 switch进去,若是能够的话,返回 True 而且 switch 进去,不然返回 False
invisibility_of_element_located : 判断某个元素中是否不存在于dom树或不可见
element_to_be_clickable : 判断某个元素中是否可见而且是 enable 的,这样的话才叫 clickable
staleness_of : 等某个元素从 dom 树中移除,注意,这个方法也是返回 True或 False
element_to_be_selected : 判断某个元素是否被选中了,通常用在下拉列表
element_selection_state_to_be : 判断某个元素的选中状态是否符合预期
element_located_selection_state_to_be : 跟上面的方法做用同样,只是上面的方法传入定位到的 element,而这个方法传入 locator
alert_is_present : 判断页面上是否存在 alertweb
查看详细功能解释,能够经过下面路径找到源码:面试
打开 python 里这个目录 l 能够找到:Lib\site-packages\selenium\webdriver\support\expected_conditions.py,打开文件就是详细的源码dom